Рубрики

Перечисление с настроенным значением в Java

Условие: перечисление в Java

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

Примеры:

enum  Fruits
{
    APPLE(“RED”), BANANA(“YELLOW”), GRAPES(“GREEN”);
}

В приведенном выше примере мы видим, что перечисление Fruits имеет три члена, т. Е. APPLE, BANANA и GRAPES с собственными значениями RED, YELLOW и GREEN соответственно.

Теперь, чтобы использовать это перечисление в коде, есть несколько моментов, которым мы должны следовать:

  1. Мы должны создать параметризованный конструктор для этого перечисляемого класса. Почему? Потому что, как мы знаем, объект класса enum не может быть создан явно, поэтому для инициализации мы используем параметризованный конструктор. И конструктор не может быть публичным или защищенным, он должен иметь закрытые или стандартные модификаторы. Почему? если мы создадим открытый или защищенный, это позволит инициализировать более одного объекта. Это полностью противоречит концепции enum.
  2. Мы должны создать один метод получения, чтобы получить значение перечислений.

// Java-программа для демонстрации того, как значения могут
// быть назначенным на перечисления.

enum TrafficSignal

{

    // Это вызовет конструктор enum с одним

    // Строковый аргумент

    RED("STOP"), GREEN("GO"), ORANGE("SLOW DOWN");

  

    // объявляем приватную переменную для получения значений

    private String action;

  

    // метод получения

    public String getAction()

    {

        return this.action;

    }

  

    // enum constructor - не может быть публичным или защищенным

    private TrafficSignal(String action)

    {

        this.action = action;

    }

}

  
// Код драйвера

public class EnumConstructorExample

{

    public static void main(String args[])

    {

        // напечатаем имя каждого перечисления и там действие

        // - Примеры перечисления ()

        TrafficSignal[] signals = TrafficSignal.values();

  

        for (TrafficSignal signal : signals)

        {

            // используем метод getter для получения значения

            System.out.println("name : " + signal.name() +

                        " action: " + signal.getAction() );

        }

    }

}

Выход:

name : RED action: STOP
name : GREEN action: GO 
name : ORANGE action: SLOW DOWN 

Эта статья предоставлена Виханг Шахом . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Перечисление с настроенным значением в Java

0.00 (0%) 0 votes