黑马程序员-----张孝祥-7K月薪面试题破解之一_交通灯管理系统视频教程观后总结
来源:互联网 发布:windows硬盘安装工具 编辑:程序博客网 时间:2024/06/08 04:10
------- android培训、java培训、期待与您交流! ----------
交通灯管理系统视频教程,学完视频后我总结了思路和流程
路线逻辑
以南北方向代表垂直路线
以东西方向代表水平路线首先以南北方向开始
先直行,直行结束后再左转,右转常亮
左转完后,切换到东西方向东西方向也是先直行,再左转,右转常亮
左转结束后,换南北方向
如此循环
面向对象的分析与设计
面向对象设计把握一个重要的经验: 谁拥有数据,谁就对外提供操作这些数据的方法
例子:
人在黑板上画圆 调用圆的方法
列车司机紧急刹车 调用车
人把门关上 调用人两块石头磨成一把石刀,石刀砍树,树变成木材,木材做成椅子
刀工厂接收石头,做出石刀,石刀有砍树方法,得到木材,椅子工厂接收木材,返回椅子
交通灯管理系统的主要对象有: 红绿灯,红绿灯的控制系统,路线
思路:
路线(Road)
每个Road对象代表一条路线,总共有12条路线,即系统中总共要产生12个Road实例对象
每条路线上随机增加新的车辆,增加到一个集合中保存
创建一个线程池,把执行的命令交给线程池中空闲的线程来执行
ExecutorService pool = Executors.newSingleThreadExecutor();
pool.execute(Runnable command)//执行的命令,执行增加车辆每条路线每隔1秒都会检查控制本路线的灯是否为绿
是则将本路线保存的车的集合中的第一辆车移除,看作是车通过十字路口
此线程循环执行
ScheduledExecutorService timer = Executors.newScheduledThreadPool(1);
timer.scheduleAtFixedRate(//创建一个定时器
Runnable command,//时间到了执行的任务
long initialDelay,//过多长时间之后去执行任务
long period,//过多长时间再去执行任务
TimeUnit unit) //时间的单位
灯(Lamp):枚举类
创建12个Lamp元素,每个元素代表一个方向上的灯
除了4个右转的路线,绿灯常亮
剩下8个路线,两两成对,可以归为4组
从4组中各取1个灯,对这4个灯依次轮询变亮,与这4个灯方向对应的灯则随之一同变化
所以以这4个路线为主要对象来操作,这4个对象有对应的路线,和下一个路线
其他8个对应路线都为null,下一个路线也为null变量: String 对应路线的名字
String 下一个路线的名字
boolean 灯的情况构造方法(接收对应的路线,下一个路线的,灯的初始情况)
方法:
返回灯情况的方法绿灯的方法
要判断是否有对应的灯,如果有则一起亮绿灯红灯的方法
要判断是否有对应的灯,如果有则一起亮红灯创建一个灯变量,指向下一个灯
判断是否有下一个灯,如果有,则下一个灯变绿
返回下一个灯
灯的控制器(LampController)
创建变量 当前的灯构造方法: 指定一个当前的,并且让当前的灯是绿着
创建一个定时器,每隔10秒钟把当前的灯变红
主函数(main)
创建数组,装好12条路线的名称用for循环,创建12条路线的Road对象
然后调用红绿灯控制器方法
- 黑马程序员-----张孝祥-7K月薪面试题破解之一_交通灯管理系统视频教程观后总结
- 黑马程序员-张孝祥-7K月薪面试题破解之一_交通灯管理系统
- 黑马程序员-7K月薪面试题破解之一_交通灯管理系统
- 黑马程序员-7K月薪面试题破解之一_交通灯管理系统
- 黑马程序员-----张孝祥-7K月薪面试题破解之二_银行业务调度系统视频教程观后总结
- 黑马程序员_学习记录18:7K月薪面试题破解之一_交通灯管理系统
- 黑马程序员 7K月薪面试题破解之一 -- 交通灯管理系统
- 黑马程序员-7K月薪面试题破解_交通灯管理系统
- 黑马程序员_7K月薪面试题破解之一_交通灯管理系统
- 黑马程序员—Java基础学习笔记之7K月薪面试题破解_交通灯管理系统
- 黑马程序员------7k月薪面试题-交通灯管理系统
- 黑马程序员----7k月薪面试题破解(交通灯管理系统)
- <黑马程序员>月薪7K面试题破解-交通灯管理系统
- 黑马程序员—7K月薪面试题破解--交通灯管理系统
- 黑马程序员---面试题破解之一_交通灯管理系统
- 张孝祥-7K月薪面试题破解之一: 交通灯管理系统
- 黑马程序员 7K面试题破解:交通灯管理系统
- 黑马程序员-7K面试题破解(交通灯管理系统)
- Linux/windows 进程/线程间通信机制
- mysql 导入导出
- CPU寄存器的种类
- 编译内核到模块(无需加载)
- MySQL5绿色版windows下安装总结
- 黑马程序员-----张孝祥-7K月薪面试题破解之一_交通灯管理系统视频教程观后总结
- 文件系统、系统调用
- 微信一亿用户背后架构秘密
- MyEclipse从数据库反向生成实体类之Hibernate方式 反向工程
- 第二章 Linux-2.6.32.2 内核移植详细步骤
- 成功移植Mplayer到OK6410开发板上了
- 【打基础】高级语言程序设计·厦大出版社 课后习题个人记录1
- 在Linux开放3306端口
- paip.提升安全性---选择一个安全的加密算法