A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 姚志华 黑马帝   /  2011-11-7 11:08  /  1668 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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;}
}

怎么让这段程序运行起来,直接调用吗,为什么我只初始从红灯开始,运行不起来呢,只调用了一次下一个灯的方法,        请帮忙写出代码,谢谢

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
你可以在写一个测试程序,在这个测试程序中直接调用枚举类中的方法!枚举类只是一个类,肯定要创建实例对象的,代码如下:
TrafficLamp redLamp = TrafficLamp.RED;
TrafficLamp greenLamp = TrafficLamp.GREEN;
System.out.println(redLamp.nextLamp());
System.out.println(greenLamp.nextLamp());
回复 使用道具 举报
成杰 发表于 2011-11-7 11:28
你可以在写一个测试程序,在这个测试程序中直接调用枚举类中的方法!枚举类只是一个类,肯定要创建实例对象 ...

控制台只是输出了:
GREEN
YELLOW
不对吧,不是有时间吗,如果定义了下一个灯.也定义了时间,应该随便调哪个都可以开始呀,而且应该是可以循环才对呀,只输出两个不对吧

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
姚志华 发表于 2011-11-7 11:47
控制台只是输出了:
GREEN
YELLOW

这就是因为我只输出了两个而已,你可以在测试程序试试循环调用一下!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马