黑马程序员-java 交通灯管理系统

终于把前面的东西看完了,今天在看张老师的交通灯管理系统。个人总结了一下,随着老师的激情的讲课,也激情的听了一天,连饭都忘了吃。说的有点夸张了。原本对于我目前水平,做这样的项目简直是可望而不可及的。但是随着老师的讲课,思路也变的清晰了好多,但也没说完全能理解。之后手动的编写仍是一个重要的锻炼。课堂知识总汇固然重要,但更多我感受的是在课堂中老师不但幽默而又激情的讲课,且不望给我们这些刚起步的菜鸟们训示。

1,人的精力是有限的,要把精力留在自己喜欢的事情上。
2,环境能改变一个人
3,对每个程序员来说,没有学不会的技术,只是没有那么多的时间与精力!如果能用最少的时间学透自己想要的技术,是程序员感到最幸福的事情!
4,要想做成一番大事,必须珍惜和保护好自己的身体。即使你学富五车,才高八斗,如果没有好的身体,等到真正要施展抱负,想去实现宏伟大业时,这往往都需要坚持和耐力,可能在接近成功时,就壮志未酬身已衰,出师未捷身先卒。

面向对象:谁拥有数据谁就对外提供操作这些数据的方法。

Road类编写:
 创建线程:
  ExecutorService pool = Executors.newSingleThreadExecutor(); 创建一个单独的线程
  Thread.sleep((new Random().nextInt(10)+1)*1000); //使此线程暂停一会。但是不能存在于构造方法中


  定时器:
  ScheduledExecutorService  timer =Executors.newScheduledThreadPool(1);
  timer.scheduleWithFixedDelay(Runnable command,long initialDelay,long delay,TimeUnit unit)
  command - 要执行的任务。
  initialDelay - 首次执行的延迟时间。
  delay - 一次执行终止和下一次执行开始之间的延迟。
  unit - initialDelay 和 delay 参数的时间单位。

Lamp类编写:
 这里使用到了枚举,把12个路口定义为枚举变量。只要能够理清思路,这个类编写起来不算太难。
 张老师这里为了能够让大家加深印象,还故意露了一点小错。对应的灯(opposite),这个定义为Lamp类型,那么在使用的时候就遇到了问题了。这里张老师使用的是传递对应的灯的名字作为参数,这样就不违背先定义、后使用的规则了。
 
 逻辑是这样的:把这个路口的灯变绿时,那么对应的路口也变绿。当这个路口的灯变红时,顺便把对应路口的灯也变红,随之将下一个路口的灯变绿(但是这里要考虑有没有下一个路口的灯,像右转弯的就没有下一个路口的灯,张老师把它看作是一直是绿灯)。


LampController类编写:
 逻辑:
  指定某一个路口的灯为当前正在显示的灯,并通过定时器来控制灯的轮换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值