黑马程序员技术交流社区

标题: 由抽象枚举引起的思考。 [打印本页]

作者: jsfjb    时间: 2012-10-30 15:13
标题: 由抽象枚举引起的思考。


public class EnumTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        TrafficLamp red = TrafficLamp.RED;
        TrafficLamp green = red.nextLamp();
        
    }
   
    public enum TrafficLamp{
        RED(30){
            public TrafficLamp nextLamp(){
                System.out.println(super.time);  //此处风景独好,可以参观一下。
                System.out.println("red");
                return GREEN;
            }
        },GREEN(30){
            public TrafficLamp nextLamp(){
                System.out.println("green");
                return YELLOW;
            }
        },YELLOW(5){
            public TrafficLamp nextLamp(){
                System.out.println("yellow");
                return RED;
            }
        };
        private int time;
        private TrafficLamp(int time){
            this.time = time;
        }
        public abstract TrafficLamp nextLamp();
    }
   

}

上面是看完张老师的抽象枚举的练习,代码确实很精妙,的确是好代码。
但是看到这样的代码后,我在思考,这样的代码,在实战中哪儿用?
深思中……



作者: xuchulong1    时间: 2012-10-30 16:56
当你需要用到那些数据是在几个数据中的,那就可以使用。
譬如:张老师也举例了,周一到周日,是可以用枚举的,因为你一周只会是这七天,不会出现周八。
其次,如果你想看看真正的用法,你往后会看到张老师的视频,交通灯和银行调度,都有用枚举。

总结一下,用枚举的地方,一般是所有情况都可以全部列举出来的,并且不是很多,那就可以用一个枚举类来管理这些数据。
作者: 李建强    时间: 2012-10-30 17:10
以我来看,你看看交通灯就知道了
作者: jsfjb    时间: 2012-10-30 17:34
李建强 发表于 2012-10-30 17:10
以我来看,你看看交通灯就知道了

但是我还是感觉交通指示灯是一个demo。实战中。我有点想知道。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2