我想将这个C ++代码翻译成Java代码
#include <iostream>
enum {ADD=1, ERASE, MODIFY, EXIT};
int main() {
int option;
cin>>option;
switch(option){
case ADD: //do something . . .
break;
case ERASE: //do things . . .
default:
我迷失了Java Enums,因为我无法让他们像这样工作。
答案 0 :(得分:1)
在Java中,枚举是对象,枚举创建新类型。
enum MyEnum {
ADD, ERASE, MODIFY, EXIT;
}
所以MyEnum.ADD
的类型为MyEnum
,等等。这允许使用枚举进行强大的OO编程 - 封装,继承。
如果要将int
转换为MyEnum
,可以编写一个方法来执行此操作,或使用枚举的索引。
MyEnum.values()[1];
如果您只想拥有使用现有类型的常量(例如int
),只需执行
class MyConstants {
public final static int ADD = 1;
public final static int ERASE = 2;
public final static int MODIFY = 3;
public final static int EXIT = 4;
}
这实际上是最接近你的C ++示例。
答案 1 :(得分:0)
在java中,枚举是对象,而不是int。这意味着他们可以拥有行为,而不仅仅是代表一个价值。理想情况下,每个枚举值的行为应该封装在枚举本身中:
enum Operation {
ADD {
public void perform() {
// do something
}
},
ERASE {
public void perform() {
// do something else
}
},
...
abstract public void perform();
}
Operation.values()[option].perform();