Клас Java enum & enum (з прикладами)

У цьому підручнику ми дізнаємося про перелічення на Java. Ми навчимося створювати та використовувати перечислення та класи перерахування за допомогою прикладів.

У Java перелік (скорочення від перерахування) - це тип, який має фіксований набір постійних значень. Ми використовуємо enumключове слово для оголошення перелічень. Наприклад,

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE )

Тут ми створили перелік із назвою Size. Він містить фіксовані значення SMALL, MEDIUM, LARGE і EXTRALARGE.

Ці значення всередині фігурних дужок називаються константами переліку (значеннями).

Примітка: Константи переліку зазвичай представлені великими літерами.

Приклад 1: Java Enum

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE ) class Main ( public static void main(String() args) ( System.out.println(Size.SMALL); System.out.println(Size.MEDIUM); ) )

Вихідні дані

 МАЛИЙ СЕРЕДНИЙ

Як ми бачимо з наведеного прикладу, ми використовуємо ім'я переліку для доступу до значень констант.

Крім того, ми можемо створювати змінні типів переліку. Наприклад,

 Size pizzaSize;

Тут pizzaSize - це змінна типу Size. Йому можна призначити лише 4 значення.

 pizzaSize = Size.SMALL; pizzaSize = Size.MEDIUM; pizzaSize = Size.LARGE; pizzaSize = Size.EXTRALARGE;

Приклад 2: Java Enum з оператором switch

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE ) class Test ( Size pizzaSize; public Test(Size pizzaSize) ( this.pizzaSize = pizzaSize; ) public void orderPizza() ( switch(pizzaSize) ( case SMALL: System.out.println("I ordered a small size pizza."); break; case MEDIUM: System.out.println("I ordered a medium size pizza."); break; default: System.out.println("I don't know which one to order."); break; ) ) ) class Main ( public static void main(String() args) ( Test t1 = new Test(Size.MEDIUM); t1.orderPizza(); ) )

Вихідні дані

 Я замовив піцу середнього розміру.

У наведеній вище програмі ми створили тип перерахування Розмір. Потім ми оголосили змінну pizzaSize типу Size.

Тут змінну pizzaSize можна призначити лише з 4 значеннями (SMALL, MEDIUM, LARGE, EXTRALARGE).

Зверніть увагу на заяву,

 Test t1 = new Test(Size.MEDIUM);

Він викличе Test()конструктор всередині класу Test. Тепер змінні pizzaSize присвоюється константа MEDIUM.

Виходячи зі значення, виконується один із випадків оператора випадку перемикача.

Клас Enum на Java

У Java типи переліку вважаються особливим типом класу. Він був представлений випуском Java 5.

Клас перерахування може включати методи та поля, як звичайні класи.

 enum Size ( constant1, constant2,… , constantN; // methods and fields )

Коли ми створюємо клас перечислення, компілятор створюватиме екземпляри (об'єкти) кожної константи перерахування. Крім того, усі константи переліку завжди є public static finalза замовчуванням.

Приклад 3: Клас Java Enum

 enum Size( SMALL, MEDIUM, LARGE, EXTRALARGE; public String getSize() ( // this will refer to the object SMALL switch(this) ( case SMALL: return "small"; case MEDIUM: return "medium"; case LARGE: return "large"; case EXTRALARGE: return "extra large"; default: return null; ) ) public static void main(String() args) ( // call getSize() // using the object SMALL System.out.println("The size of the pizza is " + Size.SMALL.getSize()); ) )

Вихідні дані

 Розмір піци невеликий

У наведеному вище прикладі ми створили клас перерахування Size. Він має чотири константи МАЛИЙ, СРЕДНИЙ, ВЕЛИКИЙ і ВИСОКИЙ.

Оскільки Size є класом перечислення, компілятор автоматично створює екземпляри для кожної константи перерахування.

Тут всередині main()методу ми використовували екземпляр SMALL для виклику getSize()методу.

Примітка : Як і звичайні класи, клас enum також може включати конструктори. Щоб дізнатись більше про це, відвідайте конструктор Java enum.

Методи класу Java Enum

Є кілька заздалегідь визначених методів у класах перерахування, які легко доступні для використання.

1. Порядковий номер Java Enum ()

ordinal()Метод повертає позицію константи перерахування. Наприклад,

 ordinal(SMALL) // returns 0

2. Enum compareTo ()

compareTo()Метод порівнює константи перерахувань , засновані на їх порядковому значенні. Наприклад,

 Size.SMALL.compareTo(Size.MEDIUM) // returns ordinal(SMALL) - ordinal(MEDIUM)

3. Enum toString ()

toString()Метод повертає строкове представлення констант перерахувань. Наприклад,

 SMALL.toString() // returns "SMALL"

4. Ім'я перерахування ()

name()Метод повертає певне ім'я константи перерахування у вигляді рядка. Повернене значення name()методу - final. Наприклад,

 name(SMALL) // returns "SMALL"

5. Java Enum valueOf ()

The valueOf() method takes a string and returns an enum constant having the same string name. For example,

 Size.valueOf("SMALL") // returns constant SMALL.

6. Enum values()

The values() method returns an array of enum type containing all the enum constants. For example,

 Size() enumArray = Size.value();

Why Java Enums?

In Java, enum was introduced to replace the use of int constants.

Suppose we have used a collection of int constants.

 class Size ( public final static int SMALL = 1; public final static int MEDIUM = 2; public final static int LARGE = 3; public final static int EXTRALARGE = 4; )

Here, the problem arises if we print the constants. It is because only the number is printed which might not be helpful.

So, instead of using int constants, we can simply use enums. For example,

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE )

This makes our code more intuitive.

Also, enum provides compile-time type safety.

If we declare a variable of the Size type. For example,

 Size size;

Тут гарантовано, що змінна міститиме одне з чотирьох значень. Тепер, якщо ми спробуємо передати значення, крім цих чотирьох значень, компілятор згенерує помилку.

Цікаві статті...