Найти в Дзене
Bereshpolov

Enum в Java

В Java Enum (перевод «перечисление») — это специальный тип данных, который представляет группу констант (неизменяемых переменных). Enum используются для определения набора предопределенных значений, которые может принимать переменная, что делает код более читабельным и менее подверженным ошибкам. Перечисления в Java имеют несколько свойств, которые делают их удобными для определения фиксированного набора констант. Некоторые ключевые свойства enum предоставляет в Java: values() Возвращает массив всех перечисляемых констант в том порядке, в котором они объявлены. valueOf() Возвращает значение Enum с указанным именем. Если имя не соответствует ни одной константе, выдается исключение IllegalArgumentException. ordinal() Возвращает позицию значения перечисления (индекс отсчитывается от 0). name() Возвращает имя значения как строку. compareTo() Сравнивает порядок двух перечислений на основе порядка их объявления.
Оглавление

В Java Enum (перевод «перечисление») — это специальный тип данных, который представляет группу констант (неизменяемых переменных). Enum используются для определения набора предопределенных значений, которые может принимать переменная, что делает код более читабельным и менее подверженным ошибкам.

Ключевые особенности Enum

  • Enum неявно являются static final.
  • Константы Enum неявно являются public static final.
  • В Enum можно определять методы, конструкторы и поля.
  • Enum могут иметь поведение и состояние.

Свойства Enum

Перечисления в Java имеют несколько свойств, которые делают их удобными для определения фиксированного набора констант. Некоторые ключевые свойства enum предоставляет в Java:

  • Безопасность типов. Перечисления обеспечивают безопасность типов, это означает, что компилятор проверяет, что значения, присвоенные переменной перечисления, имеют правильный тип перечисления.
  • Константы: Enums определяет фиксированный набор констант, которые можно использовать во всем коде. Мы можем получить доступ к каждой константе перечисления из экземпляра типа перечисления.
  • Шаблон Singleton: каждая константа перечисления неявно является экземпляром Singleton. Это означает, что в JVM существует только один экземпляр каждой константы перечисления.
  • Методы и поля. Перечисления могут быть методами, конструкторами и полями, как и обычные классы Java. Это позволяет перечислениям иметь поведение, связанное с каждой константой.
  • Итерация: перечисления можно перебирать с помощью метода values(), который возвращает массив всех перечисляемых констант в том порядке, в котором они объявлены.
  • Операторы switch: мы можем использовать Enums в операторах переключения, чтобы сделать код более читаемым и удобным в обслуживании.
  • Иммутабельность: экземпляры Enum являются неизменяемыми, что означает, что их значения неизменяемы после их создания.
  • Сериализуемость: перечисления по умолчанию сериализуемы, что делает их пригодными для использования в распределенных системах и сериализации.

Методы Enum

values()

Возвращает массив всех перечисляемых констант в том порядке, в котором они объявлены.

valueOf()

Возвращает значение Enum с указанным именем. Если имя не соответствует ни одной константе, выдается исключение IllegalArgumentException.

ordinal()

Возвращает позицию значения перечисления (индекс отсчитывается от 0).

name()

Возвращает имя значения как строку.

compareTo()

Сравнивает порядок двух перечислений на основе порядка их объявления.