Эмулировать перечисление C ++ в Java

Я хочу перевести этот код 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, потому что не могу заставить их работать так.

1

Решение

В Java перечисления объекты, и перечисление создает Новый тип.

enum MyEnum {
ADD, ERASE, MODIFY, EXIT;
}

Так MyEnum.ADD имеет тип MyEnumи т. д. Это позволяет выполнять мощное ОО-программирование — инкапсуляцию, наследование — с перечислениями.

Если вы хотите конвертировать 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

Другие решения

В java-перечислениях есть объекты, а не целые. Это означает, что они могут иметь поведение, а не просто представлять значение. Таким образом, в идеале поведение каждого значения перечисления должно быть заключено в самом перечислении:

enum Operation {
ADD {
public void perform() {
// do something
}
},
ERASE {
public void perform() {
// do something else
}
},
...

abstract public void perform();
}

Operation.values()[option].perform();
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector