黑马程序员_交通灯改造版!
来源:互联网 发布:在线英语培训软件 编辑:程序博客网 时间:2024/05/24 15:37
----------------------android培训、java培训、期待与您交流! ----------------------
功能: 交通灯,黑马学仔都懂得
思路:
交通灯控制台LampContral{
控制各路Lamp的亮灭{
If(亮){
呼叫对应的Road.work()让车辆通行
}
else
}
}
此方法的特点在于,灯亮了就呼叫对应路上的车辆通行,不用车辆监视着灯的状态
代码粗糙,很多地方没有优化,大家凑合着看吧!
/* * 功能: * 控制交通灯,十秒钟变换一次 * */ package com.isoftstone.interview.traffic; import java.util.Random; public class LampContral { //创建十二盏灯 private Lamp[] lamps = { Lamp.N_E,Lamp.N_S,Lamp.E_N,Lamp.E_W,Lamp. N_W,Lamp.E_S, Lamp.S_W,Lamp.S_E,Lamp.W_S,Lamp.W_N, Lamp.W_E,Lamp.S_N }; LampContral(){ // 初始化灯 全部置为 红 for(Lamp lamp:lamps){ lamp.setLamp(false); } } public void work()throws Exception{ while(true){ for(int i=0; i<4; i++){ lamps[i].setLamp(true); } //sleep Thread.sleep(10000); for(int i=0; i<4; i++){ lamps[i].setLamp(false); } for(int i=4;i<6; i++){ lamps[i].setLamp(true); } //sleep Thread.sleep(10000); for(int i=4;i<6; i++){ lamps[i].setLamp(false); } for(int i=6;i<10; i++){ lamps[i].setLamp(true); } //sleep Thread.sleep(10000); for(int i=6;i<10; i++){ lamps[i].setLamp(false); } for(int i=10;i<12; i++){ lamps[i].setLamp(true); } //sleep Thread.sleep(10000); for(int i=10;i<12; i++){ lamps[i].setLamp(false); } } } }
package com.isoftstone.interview.traffic; public class Controlcentre { /** * @param args */ public static void main(String[] args)throws Exception { // TODO Auto-generated method stub new LampContral().work(); } }
//东南西北(North South East West) package com.isoftstone.interview.traffic; public enum Lamp { N_E(new Road("东》》西路")),N_S(new Road("东》》南路")),E_N(new Road("西》》东路")),E_W(new Road("西》》北路")), N_W(new Road("东》》南路")),E_S(new Road("西》》南路")), S_W(new Road("南》》北路")),S_E(new Road("南》》西路")),W_S(new Road("北》》南路")),W_N(new Road("北》》东路")), W_E(new Road("北》》西路")),S_N(new Road("西》》东路")); private boolean islight=false; private Road road; // Lamp(Road road){ this.road = road; } //判断灯是否亮着, private boolean isLight(){ return islight; } public void setLamp(boolean islight){ this.islight = islight; //如果灯亮 则呼叫本路车通过 if(islight){ callCar(); } else{ System.out.println(this.road.name+"~~~~~~~~~~~~~~~~~~~禁止通行"); } } private void callCar(){ System.out.println("***"+this.road.name+"*******可以通车"); this.road.work(); } }
package com.isoftstone.interview.traffic; import java.util.*; public class Road { private static int num=0; //名字 public String name=null; //排队中的车辆 //private List<String> listCar = new ArrayList<String>(); private int listCar = 0; Road(String name){ this.name=name; // addCar(); new Thread(new Runnable(){ @Override public void run() { // 一到十秒随机加入一辆车 try { Thread.sleep((new Random().nextInt(10)+1)*1000); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } //listCar.add(Road.this.name+":"); listCar++; System.out.println("添加一辆车>>>>>>>"+Road.this.name); } }).start(); } //每秒通过一辆车 public void work(){ new Thread(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub //if(listCar.isEmpty()){ if(listCar==0){ //这路木有车 System.out.println(Road.this.name+"······························木有车"); } else{ try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } listCar--; System.out.println("__________________________________"+Road.this.name+">>>>>>>>>>>>>>>>>通过一辆车"); } } }).start(); } }
----------------------android培训、java培训、期待与您交流! ----------------------
- 黑马程序员_交通灯改造版!
- 黑马程序员_交通灯
- 黑马程序员_交通灯
- 黑马程序员_交通灯
- 黑马程序员_交通灯
- 黑马程序员_交通灯例子
- 黑马程序员_交通灯系统
- 黑马程序员_交通灯系统
- 黑马程序员_张孝祥交通灯
- 黑马程序员_交通灯系统
- 黑马程序员_交通灯系统
- 黑马程序员_交通灯管理
- 黑马程序员_银行交通灯。
- 黑马程序员_交通灯系统
- 黑马程序员_交通灯系统
- 黑马程序员_交通灯系统
- 黑马程序员_交通灯系统
- 黑马程序员_交通灯项目
- Oracle 10g RAC sqlplus / as sysdba Connected to an idle instance
- 解决Office 2010中的程序打开显示“正在配置”。。。
- 10个最受欢迎的Java类
- java中excel的属性设置
- CO01/CO02/CO40保存增强点
- 黑马程序员_交通灯改造版!
- 飞鸽传书2013
- 两个包含group by 语句的select 语句的连接查询
- 成员函数指针数组,处理函数中调用:
- 程序员必备的七大面向对象设计原则(三)
- 标准成本估算物料取价策略增强
- thinkphp引入FCK编辑器
- JS禁用浏览器退格键
- 关于系统管理工具杂谈 tmux IPython