Изменения

Перейти к: навигация, поиск

Перечисления

3 байта добавлено, 00:17, 23 марта 2021
Наследование в enum
==Предыстория==
Программируя, мы часто сталкиваемся с необходимостью ограничить множество допустимых значений для некоторого типа данных. Так, например, день недели может иметь 7 разных значений, месяц в году - 12, а время года - 4. Для решения подобных задач во многих языках программирования со статической типизацией предусмотрен специальный тип данных - перечисление <tex>(enum)</tex>.
Данный тип данных появился в Java начиная с версии 1.5. (enum) предоставляет множество удобств как в компактности записи, так и в удобстве использования. Так же, по сравнениюв отличие, допустим, с от C++, перечисления в Java представляют собой полноценные объекты, что предоставляет разработчику гораздо большую гибкость.
==Введение ==
METER {
public double getLength() { return 1; }
}; ,
MILLIMETER {
public double getLength() { return 0.001; }
Результат будет следующим:
class Unit
class Unit ''$''1 class Unit class Unit ''$''2 class Unit class Unit ''$''3 class Unit
==Использование enum==
В результате чего он выдаст соответствующую меру длины. Так же можно употребить <tex>default</tex>, на тот случай, если вдруг другой программист добавил новые значения в Unit, а вас не предупредил. Поставив для варианта <tex>default</tex> вывод сообщения об отсутствии в списке значения unit, вы обнаружите это изменение.
===Получение елемента элемента enum по строковому представлению его имени===
Довольно часто возникает задача получить элемент enum по его строковому представлению. Для этих целей в каждом enum-классе компилятор автоматически создает специальный статический метод: public static EnumClass valueOf(String name), который возвращает элемент перечисления EnumClass с названием, равным name. Пример использования:
String name = "METER";
Анонимный участник

Навигация