public class TrafficLampTest {
public static void main(String[] args) {
TrafficLamp tl=TrafficLamp.GREEN;
System.out.println(tl+"\n下一个是:");
System.out.println(tl.nextLamp());
}
}
enum TrafficLamp {
// 枚举项,枚举项要重写抽象方法
RED(30) { //定义绿灯,实现下一个灯是黄灯
public TrafficLamp nextLamp() {
return GREEN;
}
},
YELLOW(5) {//定义黄灯,实现下一个灯是红灯
public TrafficLamp nextLamp() {
return RED;
}
},
GREEN(45) {//定义红灯,实现下一个灯是绿灯
public TrafficLamp nextLamp() {
return YELLOW;
}
};
// 抽象方法
public abstract TrafficLamp nextLamp();
// 成员变量
private int time;
// 构造方法
private TrafficLamp(int time) {
this.time = time;
}
// 重写toString可以实现名字的显示
public String toString() {
String name = null;
switch (this) {
case GREEN:
name = "绿灯";
break;
case RED:
name = "红灯";
break;
case YELLOW:
name = "黄灯";
break;
}
return name;
}
}
枚举可以看成是一个特殊的类,他和类用法差不多,但是注意枚举项要放在前面,枚举项分号可以省略,但是后面还有内容就不能省略,建议不要省略,枚举项要实现抽象方法,而构造方法必须要用private修饰,不写也是默认是private |