您的位置:首页 > 其它

用枚举来实现一个交通灯

2014-03-16 17:51 274 查看
package com.foresee.test;

/**
* 利用枚举来定义红黄绿灯
*
* @author qinyujun
*/
public class EnumTest {

public static void main(String[] args) {

try{
while(true){
System.out.println("当前灯:"+TrafficLamp.GREEN);
Thread.currentThread().sleep(TrafficLamp.GREEN.getTime());
System.out.println("当前灯:"+TrafficLamp.GREEN.nextLamp());
Thread.currentThread().sleep(TrafficLamp.GREEN.nextLamp().getTime());
System.out.println("当前灯:"+TrafficLamp.GREEN.nextLamp().nextLamp());
Thread.currentThread().sleep(TrafficLamp.GREEN.nextLamp().nextLamp().getTime());
}
}catch(Exception e){
e.printStackTrace();
}
}

public enum TrafficLamp {
GREEN(5000){
public TrafficLamp nextLamp(){
return YELLOW;
}
}, YELLOW(2000){
public TrafficLamp nextLamp(){
return RED;
}
}, RED(5000){
public TrafficLamp nextLamp(){
return GREEN;
}
};
//获取下一个灯,在枚举元素中实现
public abstract TrafficLamp nextLamp();
//灯亮的时间
private long time;

private TrafficLamp(long time) {
this.time = time;
}

public long getTime(){
return this.time;
}
}

}

在看张孝祥教学视频里学到枚举类型,这个不常用的特性,今天就学着做了一个交通灯。

运行效果:

先是绿灯,等过了5秒后,变为黄灯,过了2秒变为红灯,再过5秒变绿灯,之后这样一直循环下去

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐