Возможности перечисления
1. Используйте enum, чтобы определить класс перечисления, который по умолчанию наследует класс java.lang.Enum вместо класса Object. Среди них класс java.lang.Enum реализует два интерфейса: java.lang.Serializable и java.lang.Comparable.
2. Конструктор класса перечисления может использовать только модификатор доступа Private. Если модификатор управления доступом его конструктора опущен, по умолчанию используется модификация Private.
3. Все экземпляры класса перечисления должны быть явно перечислены в классе перечисления, иначе этот класс перечисления никогда не сможет генерировать экземпляры. Когда эти экземпляры перечислены, система автоматически добавляет публичные статические окончательные модификации без необходимости программистам добавлять их явно.
},ЧЕТ{
публичная строка toLocaleString(){
вернуть «Четверг»;
}
},ПТ{
публичная строка toLocaleString(){
вернуть «Пятницу»;
}
},СБ{
публичная строка toLocaleString(){
вернуть «Суббота»;
}
},СОЛНЦЕ{
публичная строка toLocaleString(){
вернуть «воскресенье»;
}
};
публичная абстрактная строка toLocaleString();
}
метод int CompareTo
String name() возвращает имя экземпляра перечисления.
int ordinal() возвращает индекс значения перечисления в перечислении.
String toString() возвращает имя экземпляра перечисления, которое используется чаще, чем имя.
публичное статическое значениеOf()
}
частная лампа (строка напротив, строка следующая, логическое значение освещено) {
this.opposite = напротив;
это.следующий = следующий;
this.lighted = освещено;
}
/*Является ли текущий свет зеленым*/
частное логическое значение с подсветкой;
/*Соответствующее направление, в котором текущий свет одновременно горит зеленым*/
частная строка напротив;
/*Следующий свет загорится зеленым, когда текущий свет станет красным*/
частная строка следующая;
общедоступное логическое значение isLighted(){
возврат горит;
}
/**
* Когда определенный свет становится зеленым, свет в соответствующем направлении также становится зеленым.
*/
публичный пустотный свет(){
this.lighted = правда;
если (напротив! = ноль) {
Lamp.valueOf(противоположный).light();
}
System.out.println(name() + "Лампа зеленая, всего внизу должно быть 6 направлений, где можно увидеть проезжающие машины!");
}
/**
* Когда определенный свет становится красным, свет в соответствующем направлении также становится красным, а свет в следующем направлении становится зеленым.
* @return Следующий свет, который станет зеленым.
*/
общественная лампа затемнена () {
this.lighted = ложь;
если (напротив! = ноль) {
Lamp.valueOf(противоположный).blackOut();
}
Лампа nextLamp= null;
если (следующий! = ноль) {
nextLamp = Lamp.valueOf(следующий);
System.out.println("Зеленый свет переключается с " + name() + "--------> на " + next);
следующаяЛампа.свет();
}
вернуть следующую лампу;
}
}