黑马程序员_通灯管理系统
来源:互联网 发布:暨南大学网络教学 编辑:程序博客网 时间: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
- 黑马程序员_通灯管理系统
- 黑马程序员-通灯管理系统
- 黑马程序员---七千面试题之交通灯管系统
- 黑马程序员_交通灯系统
- 黑马程序员_银行系统
- 黑马程序员_交通管理系统
- 黑马程序员_交通灯系统
- 黑马程序员_交通管理系统
- 黑马程序员_交通灯系统
- 黑马程序员_交通灯系统
- 黑马程序员_银行系统。
- 黑马程序员_交通灯系统
- 黑马程序员_银行业务系统
- 黑马程序员_交通灯系统
- 黑马程序员_交通灯系统
- 黑马程序员_交通灯系统
- 黑马程序员_交通灯系统
- 黑马程序员_交通灯系统
- android listview
- HDOJ 2066 一个人的旅游
- Linux USB Joystick游戏杆驱动
- PKI入门级介绍
- eclipse 配置tomcat
- 黑马程序员_通灯管理系统
- 付费模式真能让网络服务更加美好么?
- 流程图常见符号
- ==和equals闲谈
- JSP中的数据库操作(3):JSP页面中的数据库插入
- socket编程---服务器端与客户端简单通信
- 【学习点滴-memcached】memcached的分布式算法
- TypeError: object.__new__() takes no parameters
- 线段树典型例题--poj2482