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;}//一个参数的构造方法
    }

枚举的参数都是类,利用内部类的形式,在对象后面加(){实现抽象方法}的形式实现。

posted @ 2016-11-23 16:25  阿飞博客  阅读(697)  评论(1)    收藏  举报