Объектно-ориентированного программирования
Запутались с перечислением? Вот статья, чтобы очистить его.
Все о ENUM, что вы должны знать.
Привет всем, в этой статье я собираюсь объяснить перечисление, переменные экземпляра перечисления, конструкторы и методы экземпляра. Использование перечисления в случаях переключения и, наконец, разница между перечислением и классом.
Начнем с Enum…
Ниже приведены важные моменты, касающиеся перечисления, которые вы должны знать:
Enum
– это группа предопределенных именованных констант на любом языке программирования.Enum
используется, когда мы знаем все возможные значения группы перед компиляцией кода.- Пример:
Direction
может быть перечислением, так как мы знаем все возможные значения направления, которые могут быть СЕВЕР,ЮГ,ВОСТОК,иЗАПАД. - В ходе разработки мы можем добавить несколько новых констант перечисления.
Enums
очень эффективны, так как могут иметь переменные экземпляра, методы экземпляраиконструкторы.- Каждая константа перечисления должна быть написана заглавными буквами.
- Каждая константа перечисления по умолчанию внутренне объявлена
public static final
типа Enum.
Давайте посмотрим на пример перечисления:
ВЫХОД :
Direction name : NORTH Direction name : SOUTH Direction name : WEST Direction name : EAST
ПРИМЕЧАНИЕ:
Enum можно объявить вне класса или внутри класса, но нельзя объявить внутри метода.
Вы можете видеть, что Direction
— это имя перечисления, которое имеет четыре константы. Каждая константа представляет собой public static final
. Эти константыотносятся к объектам перечисления.
public static final Direction NORTH = new Direction();
Здесь NORTH
— это ссылочная переменная типа Direction
, и по умолчанию она public static final
. Поскольку он является общедоступным статическим, следовательно, к нему можно получить доступ через имя перечисления из любого места. Например. Direction.NORTH
. Вы можете видеть, что объект создается с использованием ключевого слова new
, затем вызывается конструктор, и константе присваивается ссылка на объект.
ПРИМЕЧАНИЕ:
В Enum сначала должны быть объявлены константы, а затем переменные экземпляра, конструкторы и методы.
Как использовать константы Enum в качестве аргумента в случае Switch?
Ниже я написал программу, которая содержит различные сценарии использования констант перечисления. Программа состоит из следующих пунктов:
- Константы перечисления
- Переменная экземпляра
- Конструктор
- Методы экземпляра
- Переключить регистр в классе Main.
Пример примера перечисления: Enum Direction:
Основной как класс драйвера для примера переключателя:
ВЫХОД:
Direction name : NORTH Direction name : SOUTH Direction name : WEST Direction name : EAST East case matched!
В чем разница между Enum и классом?
Важно отметить следующее:
- Каждое перечисление внутренне реализовано как класс.
- Для перечисления не допускается ключевое слово
extends
, так как каждое перечисление внутренне расширяет классjava.lang.Enum
. - Одно перечисление не может расширять другое перечисление, но один класс может расширять другой класс.
- Объекты перечисления нельзя создавать вне перечисления или в других классах с использованием нового ключевого слова, но объект класса может создаваться с использованием нового ключевого слова в том же или других классах/пакетах.
Давайте поговорим об Enum и наследовании:
- Все классы enum
extends
java.lang.Enum
неявно и одно перечисление (которое является только внутренним классом) может расширять только один класс за раз, поэтому перечисление не может расширять другое перечисление или класс. toString()
method переопределяется вjava.lang.Enum
и возвращает имя перечисления.- Enum может реализовать любое количество интерфейсов.
Теперь давайте рассмотрим некоторые из важных методов Enum:
1. values() возвращают массив всех объектов перечисления.
for (Direction direction : Direction.values()) { System.out.println("Direction name : " + direction); }
ВЫХОД:
Direction name : NORTH Direction name : SOUTH Direction name : WEST Direction name : EAST
2. ordinal() возвращает индекс константы перечисления.
System.out.println("Index of EAST is : "+Direction.EAST.ordinal());
ВЫХОД:
Index of EAST is : 3
3. valueOf() возвращает константный объект перечисления, указанный в этом методе в качестве параметра (строковый параметр). Если указанное перечисление в методе не существует, возникает исключение IllegalArgumentException.
System.out.println("EAST enum constant is : "+Direction.valueOf("EAST"));
ВЫХОД:
EAST enum constant is : EAST
Приведенный ниже код генерирует исключение недопустимого аргумента во время выполнения, поскольку «СЕВЕРО-ВОСТОК» не является константой перечисления.
System.out.println("EAST enum constant is : "+Direction.valueOf("NORTH-EAST")); -------------------------------------------------------------------- Exception in thread “main” java.lang.IllegalArgumentException: No enum constant com.vikram.Direction.NORTH-EAST at java.lang.Enum.valueOf(Enum.java:238) at com.vikram.Direction.valueOf(Main.java:7) at com.vikram.Main.main(Main.java:85)
Это все, что касается этой статьи. Надеюсь, вам понравилась эта статья.
Вы можете подписаться на меня здесь.