Изменения

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

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

209 байт убрано, 10:26, 22 октября 2013
м
исправлены ошибки, допущенные в ходе прошлых изменений
==Конструкция enum==
Начнем с примера. Давайте опишем с помощью enum тип данных для хранения оценки студентамер длины:
enum Unit { KILOMETER, METER, MILLIMETER }
•MILLIMETER - объект 3-го класса производного от Unit
Два производных класса будут созданы с полиморфным методом Object parse(String) и конструктором Unit(..., boolean). При этом объекты Объекты классов KILLOMETER, MILLIMETER и METER существуют в единственном экземпляре и доступны статически. В этом можно убедится:
System.out.println(Unit.class);
System.out.println(Unit.KILOMETER.getClass() + " " + Unit.KILOMETER.getClass().getSuperclass());
Но множество сравнений заняло бы много места.
Для этого мы используем <tex>switch</tex>, в результате чего у нас получится получается следующая запись:
switch (unit) {
}
В результате чего он выведет выдаст соответствующую меру длины. Так же можно употребить <tex>default</tex>, на тот случай, если вдруг другой программист добавил новые значения в Unit, а вас не предупредил. Поставив для варианта <tex>default</tex> вывод сообщения об отсутствии в списке значенияя значения unit, вы обнаружите это изменение.
===Получение елемента enum по строковому представлению его имени===
Довольно часто возникает задача получить элемент enum по его строковому представлению. Для этих целей в каждом enum-классе компилятор автоматически создает специальный статический метод: public static EnumClass valueOf(String name), который возвращает элемент перечисления EnumClass с названием, равным name. Пример использования:
String name = "METER";
9
правок

Навигация