黑马程序员_通灯管理系统

来源:互联网 发布:暨南大学网络教学 编辑:程序博客网 时间:2024/04/29 20:43

---------------------- android培训java培训、期待与您交流! ----------------------

 

Traffic

在编程模拟实际问题的时候,一定要画图,张老师的路线图就很形象很具体。

     分析问题:这里面一共有12条路线。在这里我们并不需要体现车辆移动的过程,只是捕捉出车辆穿过路口的过程,也就是捕捉路上减少一辆车的过程,所以,这个车并不需要单独设计成为一个对象,用一个字符串表示就可以了。

     设计Lamp类的时候,需要用到枚举类,一共12个灯,用枚举比较方便,因为枚举中的一个元素就是枚举类的一个对象。需要定义不同走向的12个元素。除了右拐弯方向的其他8条路线的灯,它们是两两成对的,可以归为4组,所以,在编程处理时,只要从这4组中各取出一个灯,对这4个灯依次轮询变亮,与这4个灯方向对应的灯则随之一同变化,因此只有四个灯需要考虑。

    每个枚举元素各表示一个方向的控制灯,构造方法中的参数要用String,不然会出错,不能在对象定义前去调用该对象。

       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),E2N(null,null,true),N2W(null,null,true),W2S(null,null,true);

 

某个灯变绿时,它对应方向的灯也要变绿:

Lamp.valueOf(opposite).light();这里xxx.ValueOf()方法返回的是对象。

某个灯变红时,对应方向的灯也要变红,并且下一个方向的灯要变绿:Lamp.valueOf(opposite).blackOut(); nextLamp = Lamp.valueOf(next);nextLamp.light();

张老师最后运行的时候,这里出了点小错误

Lamp nextLamp= null;

              if(next != null){

                     nextLamp = Lamp.valueOf(next);

Road类中用到了计时器,要学自己写计时器。

控制器,控制路灯,设置了第一个灯为绿灯。要记住ScheduledExecutorService的用法,并需要用到计时器。

定时器:

ScheduledExecutorService  timer =  Executors.newScheduledThreadPool(1);

              timer.scheduleAtFixedRate(

                            new Runnable(){

                                   public  void run(){

                                          currentLamp = currentLamp.blackOut();

                                   }

                            },

                            10,

                            10,

                            TimeUnit.SECONDS);

     在主方法测试的时候,需要产生12个方向的路线。通过new LampController();产生整个交通系统。

    通过对张老师交通灯系统的学习,我更加清晰的了解了面向对象的分析与设计,在学习的工程中,张老师步步深入的编码方式给了我很多启发,写代码不是最难的,最难的是把问题分析透彻,比如有12条路线,需要分析4个灯,还有车的行驶方向和面对的灯与下组灯之间的联系。

 

 

---------------------- android培训java培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 东西粘在喉咙里怎么办 有异物卡在喉咙怎么办 喉咙老有异物感怎么办 喉咙疼有异物感怎么办 喉咙卡了小鱼刺怎么办 嗓子卡了小鱼刺怎么办 骨头卡在喉咙里怎么办 卡刺喉咙怎么办小窍门 中百购物卡过期怎么办 得仕卡过期了怎么办 超市购物卡丢了怎么办 中石化油卡丢失怎么办 etc同车换车牌了怎么办 石油加油卡丢了怎么办 石化加油卡丢了怎么办 怎么办中石化的加油卡 中石油油卡丢失怎么办 公司加油卡丢了怎么办 yy频道被回收了怎么办 油卡里的圈存怎么办 农商银行圈存怎么办 社保卡号忘记了怎么办 陕西壳牌加油卡怎么办 联通用超了流量怎么办 联通3g上不了网怎么办 车玻璃水冻住了怎么办 车里玻璃水冻了怎么办 做现货亏了60万怎么办 宿舍太吵晚上睡不着觉怎么办 脚扎了钉子肿了怎么办 龙血树叶子下垂怎么办 龙血树叶子卷曲怎么办 3岁宝宝长期便秘怎么办 4岁小儿便秘严重怎么办 3岁宝宝便秘严重怎么办 3岁宝宝一直便秘怎么办 11个月宝宝便秘怎么办 2个月的宝宝便秘怎么办 宝宝便秘拉不下来怎么办 5一6岁儿童便秘怎么办 3个月宝宝便秘怎么办