Java руководство для начинающих - Шилдт Герберт (2012)
-
Год:2012
-
Название:Java руководство для начинающих
-
Автор:
-
Жанр:
-
Оригинал:Английский
-
Язык:Русский
-
Издательство:Вильямс
-
Страниц:316
-
ISBN:978-5-8459-1770-6
-
Рейтинг:
-
Ваша оценка:
Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги
Перечислимые значения можно также использовать в операторе switch. Очевидно, что в ветвях case этого оператора могут присутствовать только константы того же самого перечислимого типа, что и в выражении switch. Например, следующий фрагмент кода составлен правильно:
// Применение перечисления для управления оператором switch,
switch(tp) {
case CAR:
// ...
case TRUCK:
// ...
Как видите, в ветвях case используются константы без полного определения имени типа. Например, вместо Transport. TRUCK указано просто TRUCK. Это допустимо потому, что перечислимый тип в выражении switch неявно определяет тип констант в ветвях case. Более того, если попытаться указать тип константы явно, при компиляции возникнет ошибка.
При отображении константы перечислимого типа, например, с помощью метода println (), выводится ее имя. Так, в результате выполнения следующего оператора отобразится имя BOAT:
System.out.println(Transport.BOAT);
Ниже приведен пример программы, демонстрирующий все особенности применения перечисления Transport.
// Особенности применения перечисления Transport.
// Объявление перечисления.
enum Transport {
CAR, TRUCK, AIRPLANE, TRAIN, BOAT
}
class EnumDemo {
public static void main(String args[])
{
// Объявление ссылки на перечисление Transport.
Transport tp;
// Присваивание переменной tp константы AIRPLANE.
tp = Transport.AIRPLANE;
// вывести перечислимое значение
System.out.println("Value of tp: " + tp) ;
System.out.println();
tp = Transport.TRAIN;
// Проверка равенства двух объектов типа Transport.
if(tp == Transport.TRAIN) // сравнить два перечислимых значения
System.out.println("tp contains TRAIN.\n");
// Использование перечисления для управления оператором switch.
switch(tp) {
case CAR:
System.out.println("A car carries people.");
break;
case TRUCK:
System.out.println("A truck carries freight.");
break;
case AIRPLANE:
System.out.println("An airplane flies.");
break;
case TRAIN:
System.out.println("A train runs on rails.");
break;
case BOAT:
System.put.println("A boat sails on water.");
break;
}
}
}
Результат выполнения данной программы выглядит следующим образом:
Value of tp: AIRPLANE
tp contains TRAIN.
A train runs on rails.
Прежде чем переходить к рассмотрению следующей темы, необходимо сделать одно замечание. Имена констант в перечислении Transport указываются прописными буквами (например, одна из них называется CAR, а не саг). Но это требование не является обязательным. Не существует никаких ограничений на использование регистра символов в именах констант перечислимого типа. Но поскольку константы перечислимого типа, как правило, предназначены для замены переменных, объявленных как final, имена которых по традиции обозначаются прописными буквами, то и имена констант перечислимого типа, как правило, обозначаются прописными буквами. И хотя на этот счет имеются разные точки зрения, в примерах программ, представленных в этой книге, для констант перечислимого типа будут выбираться имена, обозначаемые прописными буквами.
Перечисления в Java относятся к типам классов





