JDK5新特性_5.交通灯案例与枚举的总结
使用枚举实现交通灯案例:
/** * 枚举总结案例:交通灯 * * @author linguoren * */ public class T5_EnumResult { public static void main(String[] args) { System.out.println(TrafficLamp.GREEN_LAMP); System.out.println("绿灯下一个灯:" + TrafficLamp.GREEN_LAMP.nextLamp()); System.out.println("黄灯下一个灯:" + TrafficLamp.YELLOW_LAMP.nextLamp()); } public enum TrafficLamp { RED_LAMP(30) { public TrafficLamp nextLamp() { return GREEN_LAMP; } @Override public String toString() { return "红灯,时长为:" + this.time; } }, GREEN_LAMP(45) { @Override public TrafficLamp nextLamp() { return YELLOW_LAMP; } @Override public String toString() { return "绿灯,时长为:" + this.time; } }, YELLOW_LAMP(10) { @Override public TrafficLamp nextLamp() { return RED_LAMP; } @Override public String toString() { return "黄灯,时长为:" + this.time; } };// 红绿蓝三种灯 /** * * @return 下一个灯的对象 */ public abstract TrafficLamp nextLamp(); int time; TrafficLamp(int time) { this.time = time; } } }
控制台结果:
绿灯,时长为:45
绿灯下一个灯:黄灯,时长为:10
黄灯下一个灯:红灯,时长为:30
这个案例包含了枚举最常见的
这个案例包含了枚举最常见的用法,枚举我们可以把它看成一个类,一个特殊的类,该类的对象在类中创建而不能在外面创建(构造器被private了)
枚举是天然的单例,如果要实现单例模式,可以考虑使用枚举。