Класс перечисления enum был представлен в JDK1.5. Ранее вместо класса перечисления использовался public static Final int enum_value. Класс перечисления enum — это специальный класс, который по умолчанию наследует класс java.lang.Enum. Как и другие обычные классы, enum также может иметь переменные-члены, методы и конструкторы, а также реализовывать один или несколько интерфейсов. Разница в следующем:
1. Если есть конструктор, его необходимо оформить приватом.
2. Классы перечисления не могут создавать подклассы.
3. Все экземпляры класса перечисления должны быть четко определены в первой строке. Система автоматически добавит публичную статическую окончательную модификацию к этим экземплярам без необходимости их явного определения программистами.
4. Класс перечисления по умолчанию предоставляет метод Values() для облегчения обхода всех значений перечисления.
Методы в перечислении (методы, предоставляемые Enum):
public Final int CompareTo(E o) Сравнивает значения перечисления одного типа
public Final int ordinal() Возвращает значение индекса перечисления, начиная с нуля для первого значения перечисления.
public Final String name() возвращает имя экземпляра перечисления
public String toString() возвращает имя вывода перечисления
Пример светофора
public enum TrafficLight { RED("Red"), YELLOW("Yellow"), GREEN("Green"); Private TrafficLight(String name) { this.name = name; } public String getName() { return имя; } public void jude(Светофор) { переключатель (свет) {case RED: System.out.println("stop"); System.out.println("go"); case GREEN: System.out.println("wait"; default:break; } } public static void main(String[] args) { for (TrafficLight e) : TrafficLight.values()) { System.out.println(e.name()) } }};