交通灯管理系统
异步随机生成按照各个线路行驶的车辆,
南到北直行
南到东右转
南到西左转
车看到自己面对的灯,右转车辆没有红灯,为了让这个模型简单,让右转的灯是绿灯常绿
车只看灯 不管方向
等忽略黄灯,值考虑红灯和绿灯
直行,转弯,另外的一条直行,转弯循环
灯,灯的控制器,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