Java — это язык объектно-ориентированного программирования. В Java перечисление — это особый класс, представляющий группу констант. Все возможные значения в перечислениях используются во время компиляции. В Java мы представляем класс Enum с помощью типа данных enum. Enum в Java более мощный, чем enum в C/C ++. Мы можем добавить к нему методы, переменные и конструктор.
Ключевые моменты в Enum
- enum улучшить безопасность типов.
- enum можно легко использовать в переключателе.
- enum может иметь поля, конструкторы и методы.
- enum может реализовывать множество интерфейсов, но не может расширять какой-либо класс, потому что он внутренне расширяет класс Enum.
- enum может быть пройден.
Java Пример перечисления
Перечисления представляют группу именованных констант в программировании. Например, четыре масти в колоде игральных карт могут быть четырьмя счетчиками с именами Club, Diamond, Heart и Spade, принадлежащими к перечисляемому типу с именем Suit.
Другие примеры включают естественные перечисляемые типы, такие как планеты, дни недели, цвета, направления и т. д. Перечисления — это неизменяемые переменные, такие как переменные final .
Давайте посмотрим, как создать объявление перечисления.
Синтаксис Enum
enum enum_name {Список/методы констант}
См. следующий Тест .java .
enum WeekDays {воскресенье, понедельник, вторник, среда, четверг, пятница, суббота} class Test {public static void main (String [] er) {WeekDays wd ; //wk - это переменная перечисления типа WeekDays wd = WeekDays.sunday; //wk могут быть присвоены только константы, определенные в enum type Weekdays System.out.println ("Today is" + wd); }}
В приведенном выше примере воскресенье, понедельник … они называются константами Enum. По умолчанию это общедоступные, статические и окончательные.
Можем ли мы создать экземпляр enum новым ключевым словом?
Нет, потому что он содержит только частные конструкторы.
Можем ли мы иметь абстрактный метод в enum?
Да, конечно! У нас могут быть абстрактные методы и мы можем предоставить реализацию этих методов.
Переменные перечисления могут быть объявлены без ключевого слова new .
Переменные типа Enumeration могут иметь в качестве значения только константы перечисления. Мы определяем переменную перечисления как следующий синтаксис.
enum_variable = enum_type.enum_constant;
См. Вывод.
Теперь давайте посмотрим, как использовать регистр переключения в перечислении.
См. следующий код.
enum WeekDays {воскресенье, понедельник, вторник, среда, четверг, пятница, суббота} class Switch {public static void main (String [] er ) {WeekDays wd; wd = WeekDays.monday; switch (wd) {case sunday: System.out. println («Сегодня» + wd.sunday); break; case monday: System.out.println («Today is» + wd.monday); break; case tuesday: System.out.println («Today is» + wd .tuesday); break; case среда: System.out.println ("Today is" + wd.wednesday); break; case thursday: System.out.println ("Today is" + wd.thursday); break; case friday : System.out.println («Сегодня» + среда.пятница); перерыв; суббота: System.out.println («Сегодня» + среда.суббота); перерыв; }}}
См. результат.
Values () и метод valueOf ()
Все перечисления являются предопределенными методами values () и valueOf () .
Какова основная цель метода values () в перечислении?
Компилятор java внутренне добавляет функцию values () при создании перечисления. Метод values () возвращает массив, содержащий все значения перечисления.
Метод values () возвращает массив типа enum, содержащий все константы перечисления в нем.
Синтаксис метода values () следующий.
public static enum-type [] values ();
valueOf ( ) используется для возврата постоянного значения перечисления, которое равно строке, переданной в качестве аргумента при вызове этого метода.
См. следующий синтаксис
public static enum-type [] valueOf (String s);
Давайте посмотрим на пример этих двух методов.
enum WeekDays {воскресенье, понедельник, вторник , среда, четверг, пятница, суббота} class Method {public static void main (String [] er) {WeekDays wd; System.out.println ("Константы дней недели перечисляемого типа:"); WeekDays arr [] = WeekDays.values (); для (WeekDays a: arr) {System.out.print ("" + a); } wd = WeekDays.valueOf ("воскресенье"); System.out.println (" nToday is" + wd); }}
См. следующий результат.
Теперь мы собираемся понять полную программу, содержащую методы конструктора в Enumeration.
Посмотрите программу ниже и проанализируйте результат.
enum WeekDays {воскресенье (1), понедельник (2), вторник (3), среда (4), четверг (5), пятница (6), суббота (7); частный int day; int getday () {return day;} WeekDays (int day) {this.day = day;}} class Final {public static void main (String [] er) {WeekDays wd; System.out.println («Воскресенье - это» + WeekDays.sunday.getday () + «День недели»); }}
См. вывод ниже.
Разница между перечислениями и классами
Перечисление может, как и класс , у которых есть атрибуты и методы.
Основное различие заключается в том, что константы перечисления являются public, static, и final и не могут быть изменены, что означает, что он не может быть отвергнутым.
Перечисление нельзя использовать для создания объектов, и оно не может расширять другие классы, но может реализовывать интерфейсы.
Итак, это все, что касается Enums в Java.
Наконец, пример Java Enum завершен.