Объектно-ориентированного программирования

Запутались с перечислением? Вот статья, чтобы очистить его.

Все о ENUM, что вы должны знать.

Привет всем, в этой статье я собираюсь объяснить перечисление, переменные экземпляра перечисления, конструкторы и методы экземпляра. Использование перечисления в случаях переключения и, наконец, разница между перечислением и классом.

Начнем с Enum…

Ниже приведены важные моменты, касающиеся перечисления, которые вы должны знать:

  1. Enum – это группа предопределенных именованных констант на любом языке программирования.
  2. Enum используется, когда мы знаем все возможные значения группы перед компиляцией кода.
  3. Пример: Direction может быть перечислением, так как мы знаем все возможные значения направления, которые могут быть СЕВЕР,ЮГ,ВОСТОК,иЗАПАД.
  4. В ходе разработки мы можем добавить несколько новых констант перечисления.
  5. Enums очень эффективны, так как могут иметь переменные экземпляра, методы экземпляраиконструкторы.
  6. Каждая константа перечисления должна быть написана заглавными буквами.
  7. Каждая константа перечисления по умолчанию внутренне объявлена ​​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?

Ниже я написал программу, которая содержит различные сценарии использования констант перечисления. Программа состоит из следующих пунктов:

  1. Константы перечисления
  2. Переменная экземпляра
  3. Конструктор
  4. Методы экземпляра
  5. Переключить регистр в классе Main.

Пример примера перечисления: Enum Direction:

Основной как класс драйвера для примера переключателя:

ВЫХОД:

Direction name : NORTH
Direction name : SOUTH
Direction name : WEST
Direction name : EAST
East case matched!

В чем разница между Enum и классом?

Важно отметить следующее:

  1. Каждое перечисление внутренне реализовано как класс.
  2. Для перечисления не допускается ключевое слово extends, так как каждое перечисление внутренне расширяет класс java.lang.Enum.
  3. Одно перечисление не может расширять другое перечисление, но один класс может расширять другой класс.
  4. Объекты перечисления нельзя создавать вне перечисления или в других классах с использованием нового ключевого слова, но объект класса может создаваться с использованием нового ключевого слова в том же или других классах/пакетах.

Давайте поговорим об Enum и наследовании:

  1. Все классы enum extends java.lang.Enum неявно и одно перечисление (которое является только внутренним классом) может расширять только один класс за раз, поэтому перечисление не может расширять другое перечисление или класс.
  2. toString()method переопределяется в java.lang.Enum и возвращает имя перечисления.
  3. 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)

Это все, что касается этой статьи. Надеюсь, вам понравилась эта статья.

Вы можете подписаться на меня здесь.