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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 请备注 中级黑马   /  2014-4-5 11:03  /  1088 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

灯是否为绿                               //这句话的意思是否是灯默认为红?(即初始化的时候为红)
private boolean lighted

与灯同时为绿的对应方向             //如果默认不为红是不是要考虑除此之外的灯是否都为红 ?
private String opposite

灯变红时下一个变绿的灯        //绿灯每隔1秒要检查是否为绿灯状态,红灯为什么不检查?
private String nest

1 个回复

倒序浏览
public enum Lamp {
S2N("N2S","S2W",false),S2W("N2E","E2W",false),E2W("W2E","E2S",false),E2S("W2N","S2N",false),
N2S(null,null,false),N2E(null,null,false),W2E(null,null,false),W2N(null,null,false),
S2E(null,null,true),W2S(null,null,true),E2N(null,null,true),N2W(null,null,true);

private Lamp lamp;
private String oppsist;  //定义相反方向的灯
private String nextlamp; //定义下一个灯
private boolean lighted;  //定义boolean变量来判断灯的绿红情况,如果为true则为绿,如果为false则为红

Lamp(String oppsist,String nextlamp,boolean lighted ){
        this.oppsist = oppsist;
        this.nextlamp =nextlamp;
        this.lighted =lighted;
}
public boolean islight(){  //判断是灯的情况,如果为true则为绿,如果为false则为红
             return lighted;
       
}
public void setlight(){ //设置灯为绿,同时把对面的也设为绿
        this.lighted =true;
        if(oppsist!=null)
                Lamp.valueOf(oppsist).setlight();
}
public Lamp setblack(){ //设置灯为红,对面的也设为红,并把下一个设为绿
        this.lighted=false;
        if(oppsist!=null){
                Lamp.valueOf(oppsist).setblack();
                }
  System.out.println(name() + " lamp is green");
        Lamp next = null;
        if(nextlamp!=null){         //把下一个设为绿
        next =Lamp.valueOf(nextlamp);
        System.out.println(name()+"由红灯变为绿灯");
                next.setlight();
                        }
        return next;
}


}
当绿灯计时时间到,会由绿变为红,这个时候把它的对面也变为红,它的下一个设为绿。一个灯由红变为绿,它的对面也设为绿为绿,这样在里面通过计时器循环的设置灯的红绿情况,它们内部是有顺序的。

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马