黑马程序员技术交流社区
标题:
用枚举模拟更真实的交通灯
[打印本页]
作者:
老衲玩IT
时间:
2013-8-27 08:11
标题:
用枚举模拟更真实的交通灯
package com.itheima;
/**
*红灯下一个是黄灯,绿灯下一个是黄灯,如果黄灯前一个是红灯则下一个是绿灯,反之,前一个是绿灯则下一个是红灯
* @author 老衲玩IT
*
*/
public class Test2 {
public static void main(String[] args) {
TraLamp lamp=TraLamp.RED;
while (true) {
System.out.println(lamp+"...");
try {
//根据交通灯的持续时间休眠,然后启动下一个灯
Thread.sleep(lamp.time*100);
lamp=lamp.nextLamp();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//定义交通灯枚举
public enum TraLamp{
RED(30) {
@Override
TraLamp nextLamp() {
preLamp=RED;
return YELLOW;
}
},GREEN(45) {
@Override
TraLamp nextLamp() {
preLamp=GREEN;
return YELLOW;
}
},
YELLOW(5) {
@Override
TraLamp nextLamp() {
if (preLamp==RED) {
preLamp=YELLOW;
return GREEN;
}else {
preLamp=YELLOW;
return RED;
}
}
};
//交通灯的持续时间
private int time;
//上一次亮的灯
static private TraLamp preLamp;
private TraLamp(int time) {
this.time=time;
}
abstract TraLamp nextLamp();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2