java复杂枚举
枚举以红绿灯为例,红灯30s后为绿灯,绿灯45s后为黄灯,黄灯5s后为红灯。
具体的枚举代码如下:
public enum TrafficLamp{ RED(30){ public TrafficLamp nextLamp(){ return GREEN; } }, GREEN(45){ public TrafficLamp nextLamp(){ return YELLOW; } }, YELLOW(5){ public TrafficLamp nextLamp(){ return RED; } }; public abstract TrafficLamp nextLamp();//将下一个灯的方法抽象 private int time;//定义时间 private TrafficLamp(int time){this.time = time;}//一个参数的构造方法 }
枚举的参数都是类,利用内部类的形式,在对象后面加(){实现抽象方法}的形式实现。