sfd
enum в Java: очевидное - невероятное
Всем привет! Хочу рассказать про ряд неочевидных особенностей enum в Java. Поехали! 1) enum - это полноценный класс, у него могут быть поля, методы, обычные и статические 2) любой enum неявно (!) расширяет абстрактный класс Enum, поэтому наследовать enum от кого-то другого нельзя. Например, один enum от другого. При этом добавить final для enum нельзя, т.к. он уже фактически final) 3) зато enum может реализовывать интерфейсы, как и любой другой класс в Java 4) самое интересное - каждое значение enum является наследником самого enum. Т.е. можно объявить метод show в enum Direction и переопределить его Direction...
Java 90. Как связаны методы ordinal() и compareTo() в Enum?
Метод ordinal() в Java Enum возвращает порядковый номер элемента Enum, начиная с 0. То есть, если у вас есть перечисление (enum) с именами "MONDAY", "TUESDAY", "WEDNESDAY" и т.д., то метод MONDAY.ordinal() вернет 0, TUESDAY.ordinal() вернет 1, и т.д. Метод compareTo() определен в интерфейсе java.lang.Comparable, который реализуется всеми перечислениями (enums) в Java. Он используется для сравнения значений этих перечислений с другими значениями того же типа. Для перечисления (enum) MyEnum метод compareTo() будет выглядеть примерно так: public int compareTo(MyEnum other) {
return this...