Java和C++之间Enum的区别?

gir*_*iri 11 c++ java

我正在学习java中的Enums我想知道在Java和C++中Enum的主要区别是什么.谢谢

jos*_*efx 18

在c ++中,枚举只是一个整数值列表.在java中,enum是一个扩展Enum的类,更像是一种很好的编写方式:

class MyEnum extends Enum<MyEnum>
{
public final static MyEnum VE01 = new MyEnum();
public final static MyEnum VE02 = new MyEnum();
}
Run Code Online (Sandbox Code Playgroud)

作为枚举:

enum MyEnum
{
 VE01,VE02;
}
Run Code Online (Sandbox Code Playgroud)

对于枚举方法,请参阅此内容.由于java enum是一个对象,它支持普通java对象所做的一切.给他们价值或功能:

enum Binary{
 ZERO(0),ONE(1);
 Binary(int i)
 {
   value = i;
 }
 public final int value;
}
Run Code Online (Sandbox Code Playgroud)

一个好的是匿名类:

enum State{
StateA{
   public State doSomething()
   {
     //state code here
     return StateB;
    }
},
StateB{
    public State doSomething()
    {
       return StateA;
    }
};
public abstract State doSomething();
}
Run Code Online (Sandbox Code Playgroud)


Ken*_*art 14

在C++中,枚举只是一组命名的积分常量.在Java中,枚举更像是类的命名实例.您可以自定义枚举中可用的成员.

此外,C++将隐式地将枚举值转换为它们的整数等价,而转换必须在Java中是显式的.

有关维基百科的更多信息.