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

来源:互联网 发布:替换电脑软件图标 编辑:程序博客网 时间:2024/05/05 22:04
---------------------- android培训、java培训、期待与您交流! ----------------------

交通灯管理系统
异步随机生成按照各个线路行驶的车辆,

南到北直行

南到东右转

南到西左转

车看到自己面对的灯,右转车辆没有红灯,为了让这个模型简单,让右转的灯是绿灯常绿

车只看灯 不管方向

等忽略黄灯,值考虑红灯和绿灯

直行,转弯,另外的一条直行,转弯循环

 

灯,灯的控制器,4个灯的颜色,汽车,马路

汽车看到所在路的灯变绿了,前面是否有车,路上是否有车,路相当于一个集合,如果集合中没有车那么可以走

路就有增加车辆和减少车辆的方法

 

谁拥有数据,谁就对外提供操作这些数据的方法,

人在黑板上画圆

Person,blackboard,circle

Draw(){x,y---radius}

是圆内部的数据,画圆的方法是圆提供的

列车司机紧急刹车,售货员同级收获小票的金额,你把门关上了

 

车只是路这个集合的增加或者删除的元素,用一个字符串表示就可以了

 

球和绳子,

绳为小球滚动提供了方法

绳子有个方法 nextPoint

起始坐标,结束坐标,两个点就行

小球获取两个点
小球有个移动过方法,小球有个构造方法,获取绳子

 

设计个Lamp来表示一个交通灯 12个等 一个方向的路 左前右三个灯

因为是固定的,所以用枚举来做

枚举中的元素就是一个枚举对象

只要考虑四个,因为垂直方向的与这四个相反

 

记住自己的状态,记住对方的状态,还要记住下一个变色的状态

 

定时器,当定时器时间一到,就把等变红

变红的方法就返回给下一个灯

变红让下一个等变绿

变红会返回下一个等的变量

等变红之后返回变绿灯的对象

创建路对象

在路对象中创建ArraList对象

路的名字,各个方向,添加的车也是与路相通方向的

并发 Executors.newFixedThreadPool

ExcutorServicepool =

Executors.newSingleThreadExecutor()

产生一组线程

Pool.execute(newRunnalbe(){})

Run内部就是不断的去产生车辆

 

访问外部类的成员变量,用外部类类名.this.name

每过一秒钟就要去看灯是不是绿的,如果是绿的就把第一个车移除路面

 

定时器

需要每隔1秒钟去做一次,ScheduledExecutorService对象

Executors的newScheduledThreadPoll获得个对象

事件的单位 TimeUnit

检查路上有没有车,如果没有车那么就不干,如果有车的花么就移除一个

 

创建枚举对象,

灯有个变量,亮绿灯,还有个变量亮红灯

用true表示绿灯,用false表示红灯

定义一个灯的变量

储存灯的字符串

构造方法传入三个参数,一个是对应的灯,下一个等,本身等的状态

枚举可以将枚举的元素变成字符串

枚举在后面写上参数就是调用了对应的构造方法

南到西与北到东的路灯为对应关系

 

如果有下一个灯,那么要把下一个等绿

路线需要有名字,路的名字与灯的名字像对应

 

灯的控制器

传入一个灯,当前的灯变绿,每隔十秒种变化

用控制来控制十字路口灯的变化

灯在变红的时候,将一个灯变绿了,如果知道那个变绿的等

就在灯类里面返回那个变绿的等

 

创建灯对象

创建控制器

写上输出语句,调试程序

---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima
原创粉丝点击