Комментарии 6
Enum обладает рядом уникальных особенностей, таких как:
Таки каких? Ничего уникального в нижеследующем списке не обнаружено.
Возможность реализации интерфейсов;
Как и любой другой класс.
Собственное пространство имен;
В java нет такого понятия, что имеется ввиду?
Неявная реализация интерфейсов Serializable и Comparable;
Да, ла-а-адно. Прям неявно? Куда уж очевиднее?
public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable {}
В неявном виде класс
реализует интерфейсjava.lang.Enum
См. предыдущий пункт.
не может быть расширен от другого класса;
А как вы объясните вывод этого?
enum Abc {
A,
B {},
C
}
System.out.println(Abc.A.getClass().getSuperclass());
System.out.println(Abc.B.getClass().getSuperclass());
System.out.println(Abc.C.getClass().getSuperclass());
Для сравнения значений Enum можно использовать операторы == и equals().
А можно не использовать. Как, собственно, и с любой другой статической константой.
В Java enum-классы имеют свои собственные конструкторы, которые объявляются с модификатором доступа private.
ЛПиП, конструктор объявлять можно и с областью видимости по умолчанию. Во-первых, приватным конструктор делает компилятор. Во-вторых, этот генерируемый конструктор отличается от объявляемого в классе.
Ого, статья опоздавшая на 20 лет!
Для сравнения значений Enum можно использовать операторы
==
Хорошо жить с одним системным загрузчиком классов!
А при чём тут количество загрузчиков классов?
Сравнивание enum-констант через == и equals отличается лишь тем, что будет один дополнительный вызов метода. Реализация equals не менялась с момента их появления.
Я понимаю, что это перевод, но для конторы, которая пытается обучать людей программированию, не указать про новый формат switch и как его использовать с enum, ну такое себе
Освоение Enum в Java: Руководство для разработчиков