JDK5 交通灯模拟控制系统
http://itpx.eol.cn 来源: 作者:中国IT实验室收集整理 2011-05-30 大 中 小
本系统由 Lamp.java , LampController.java , Road.java 和MainClass.java组成。
Lamp.java :
package com.isoftstone.interview.traffic;
public enum Lamp {
//前进 ,左拐 ,右拐
S2N("N2S","S2W",false), S2W("N2E","E2W",false), S2E(null,null,true),
E2W("W2E","E2S",false), E2S("W2N","S2N",false), E2N(null,null,true),
N2S(null,null,false) , N2E(null,null,false), N2W(null,null,true),
W2E(null,null,false) , W2N(null,null,false), W2S(null,null,true);
String opposite;
String next;
boolean lighted;
//构造函数:初始化当前灯
private Lamp(String opposite,String next,boolean lighted){
this.opposite = opposite;
this.next = next;
this.lighted = lighted;
}
//返回当前灯的状态
public boolean isLighted(){return lighted;}
public void light(){
this.lighted = true;
if(opposite != null){
Lamp.valueOf(opposite)。light();
}
System.out.println(name() + "is Green. Soon there will be cars crossed the street at six deractions.");
}
public Lamp blackout(){
//关闭当前灯 : 设为false
this.lighted = false;
Lamp nextLamp = null;
if(opposite != null){Lamp.valueOf(opposite)。blackout();}
//检查下一个灯并启动它
if(next != null){
nextLamp = Lamp.valueOf(next);
System.out.println(name() + " to the " + next + " 's light is Green.");
nextLamp.light();
}
return nextLamp;
}
}
LampController.java
package com.isoftstone.interview.traffic;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class LampController {
private Lamp currentLamp;
public LampController(){
currentLamp = Lamp.S2N;
currentLamp.light();
免责声明:
① 凡本站注明“稿件来源:中国教育在线”的所有文字、图片和音视频稿件,版权均属本网所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本站协议授权的媒体、网站,在下载使用时必须注明“稿件来源:中国教育在线”,违者本站将依法追究责任。
② 本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。