日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

黑马程序员:交通灯管理系统学习

發布時間:2024/1/1 windows 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 黑马程序员:交通灯管理系统学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

 ------- android培訓、java培訓、期待與您交流! ----------

一、項目分析

提示:畫圖非常有助于理解和分析項目的問題,所以一定要先畫圖理清楚思路。

1,通過畫圖可以看出一共存在12條路線,其中右轉彎可以隨時轉,可以假設為
控制右轉彎的燈一直是綠燈。剩下的八條路線是兩兩相對,所以只要考慮
圖中標出的①②③④這四條路線的切換順序即可

2,要用面向對象的思想分析項目中需要哪些對象。
①因為要獲得每條路線上車輛的數據,所以要把路線看成擁有這些數據的 對象,所以要有一個描述路線的類,起名:Road
②車輛是走還是停要由燈的顏色來控制,所以顏色是燈的屬性,燈要提供獲取和改變顏色的方法,所以燈也是對象,起名:lamp
③燈的顏色是定時改變的所以要有燈的控制系統,來調用燈提供的方法定時改變燈的顏色。這些燈的控制系統屬于一個系統
?所以用單例設計模式。起名:LampController


二、對象具體功能的分析:

1,Road類

用英文字母的首字母代表四個方向:東(East)南(South)西(West)北(North)? 12條路線分別是:S2N,S2E,S2W,E2W,E2S,E2N,N2S,N2W,N2E,W2E,W2S,W2N

成員變量: 每個Road對象都有一個name變量表示方向,路線上的車輛可以用路線的名字表示,有一個vehicles變量表示車輛集合,
構造方法: 每個對象中要有一個線程每隔一個隨機的時間向路線上增加一輛車。還有有一個定時器每隔一秒檢查燈是綠燈還是紅燈如果是綠燈就把車輛集合中的第一輛車刪除代表有一輛車通過了馬路。

2,Lamp類

成員變量:
12條路線上每條路上都有一個燈,所以燈的名字用路線名稱命名,而且要通過燈的名字就可以獲得該燈的對象,所以用枚舉。燈的狀態用(boolean lighted)表示
,true 表示綠燈,false表示紅燈 。通過畫圖分析選出了4條路線,S2N、S2W、E2W、E2N,這四條路線的燈依次變綠,他們對應的相反方向的燈(opposite)隨著他們的變化而變化。因為要輪流切換所以要知道下一個燈的名字,用(next)表示。
成員方法 :讓燈變色的方法light()和blankOut(),S2N、S2W、E2W、E2N這四個路線上還需要添加讓反方向和下一個燈隨之變換的方法。

3,LampController類

增加控制當前燈變綠后,每隔10秒將當前燈變紅,并將下一個燈變綠。

4,Main類

循環創建12條路線的對象,并讓燈的控制系統啟動。

Road類的代碼:

[java]?view plaincopy
  • //包名要用公司的網址倒寫??
  • package?JiaoTongDeng;??
  • ??
  • import?java.util.ArrayList;??
  • import?java.util.List;??
  • import?java.util.Random;??
  • import?java.util.concurrent.ExecutorService;??
  • import?java.util.concurrent.Executors;??
  • import?java.util.concurrent.ScheduledExecutorService;??
  • import?java.util.concurrent.TimeUnit;??
  • ??
  • public?class?Road?{??
  • ????private?List<String>?vechicles?=?new?ArrayList<String>();??
  • ????//name代表路線的名字,路線上的車用路線名字上的第i量表示。??
  • ????private?String?name?=?null;??
  • ????public?Road(String?name){??
  • ????????this.name?=?name;??
  • ????????//創建一個單獨的線程。??
  • ????????ExecutorService?pool?=?Executors.newSingleThreadExecutor();??
  • ????????//匿名內部類,表示要線程執行的內容。??
  • ????????pool.execute(new?Runnable(){??
  • ????????????//復寫Runnable的run方法??
  • ????????????public?void?run(){??
  • ????????????????for(int?i=1;?i<1000;?i++){??
  • ????????????????????try?{??
  • ????????????????????????//10秒內隨機間隔時間向路線上添加車輛??
  • ????????????????????????Thread.sleep((new?Random().nextInt(10)+1)*1000);??
  • ????????????????????}?catch?(InterruptedException?e)?{??
  • ????????????????????????e.printStackTrace();??
  • ????????????????????}??
  • ????????????????????vechicles.add(Road.this.name?+?"方向,第"?+i+"輛車");??
  • ????????????????}??
  • ????????????}??
  • ????????});??
  • ????????//創建定時器??
  • ????????ScheduledExecutorService?timer?=?Executors.newScheduledThreadPool(1);??
  • ????????//scheduleAtFixedRate()以一定的頻率定時執行Runnable子類對象中的run方法代碼。??
  • ????????timer.scheduleAtFixedRate(??
  • ????????????????new?Runnable(){??
  • ????????????????????public?void?run(){??
  • ????????????????????????if(vechicles.size()>0){??
  • ????????????????????????????//用路名獲取對應的燈的對象,判斷等的狀態??
  • ????????????????????????????boolean?lighted?=?Lamp.valueOf(Road.this.name).isLighted();??
  • ????????????????????????????if(lighted){??
  • ????????????????????????????????//如果是綠燈就每秒刪除一輛車,表示每秒開走一輛車。知道變成紅燈。??
  • ????????????????????????????????System.out.println(vechicles.remove(0)+"開走了!");??
  • ????????????????????????????}??
  • ????????????????????????}?????
  • ????????????????????}??
  • ????????????????},1,1,TimeUnit.SECONDS);??
  • ????}??
  • ??
  • }??
  • Lamp類的代碼:

    [java]?view plaincopy
  • package?JiaoTongDeng;??
  • ??
  • public?enum?Lamp?{??
  • ????S2N("N2S","S2W",false),S2W("N2E","E2W",false),E2W("W2E","E2S",true),E2S("W2N","S2N",true),??
  • ????N2S(null,null,false),N2E(null,null,false),W2E(null,null,false),W2N(null,null,false),??
  • ????S2E(null,null,false),E2N(null,null,false),N2W(null,null,false),W2S(null,null,false);??
  • ??
  • ????private?Lamp(){??
  • ????}??
  • ??????
  • ????private?Lamp(String?opposite,String?next,boolean?lighted){??
  • ????????this.opposite?=?opposite;??
  • ????????this.next?=?next;??
  • ????????this.lighted?=?lighted;??
  • ????}??
  • ??????
  • ????private?String?next;??
  • ????private?String?opposite;??
  • ????private?boolean?lighted;??
  • ????//檢查燈是紅燈還是綠燈的方法??
  • ????public?boolean?isLighted(){??
  • ????????return?lighted;??
  • ????}??
  • ????//讓當前燈變成綠燈,反方向的燈也隨著變化.???
  • ????public?void?light(){??
  • ????????this.lighted?=?true;??
  • ????????if(opposite?!=?null){??
  • ????????????Lamp.valueOf(opposite).light();??
  • ????????}?????
  • ??
  • ????????System.out.println(name()?+?"方向,變成綠燈了,應該有6個方向上有車輛行駛");??
  • ????}??
  • ????//讓當前的燈變成紅燈,反方向的燈也隨著變化,讓下一個燈變成綠燈,并返回變成綠燈的對象給調用者。??
  • ????public?Lamp?blackOut(){??
  • ????????this.lighted?=?false;??
  • ????????if(opposite?!=?null){??
  • ????????????Lamp.valueOf(opposite).blackOut();??
  • ????????}??
  • ??????????
  • ????????Lamp?nextLamp?=?null;??
  • ????????if(next?!=?null){??
  • ????????????nextLamp?=?Lamp.valueOf(next);??
  • ????????????System.out.println(name()+"方向,禁止通行"+next+"和"+opposite+"方向變成綠燈了");??
  • ????????????nextLamp.light();?????????????
  • ????????}?????????
  • ????????return?nextLamp;??
  • ????}??
  • }??

  • LampController類代碼

    [java]?view plaincopy
  • package?JiaoTongDeng;??
  • ??
  • import?java.util.concurrent.Executors;??
  • import?java.util.concurrent.ScheduledExecutorService;??
  • import?java.util.concurrent.TimeUnit;??
  • ??
  • public?class?LampController?{??
  • ????private?Lamp?currentLamp;??
  • ??????
  • ????public?LampController(){??
  • ????????//讓當前的燈等為S2N。??
  • ????????currentLamp?=?Lamp.S2N;??
  • ????????//讓S2N的燈變綠,并把對面的燈也變綠??
  • ????????currentLamp.light();??
  • ??????????
  • ????????ScheduledExecutorService?timer?=?Executors.newScheduledThreadPool(1);??
  • ????????timer.scheduleAtFixedRate(??
  • ????????????????new?Runnable(){??
  • ????????????????????public?void?run(){??
  • ????????????????????????//每隔10秒關閉當前燈,把返回的下一個燈賦值給當前等。??
  • ????????????????????????currentLamp?=?currentLamp.blackOut();??
  • ????????????????????}??
  • ??????????????
  • ????????},?10,?10,?TimeUnit.SECONDS);??
  • ????}??
  • ??
  • }??

  • Main類代碼

    [java]?view plaincopy
  • package?JiaoTongDeng;??
  • ??
  • public?class?Main?{??
  • <span?style="white-space:pre">??</span>??
  • ????public?static?void?main(String[]?args)?{??
  • ????????String[]?directions?=???
  • ????????????????new?String[]{"S2N","S2W","E2W","E2S","N2S","N2E","W2E","W2N","S2E","E2N","N2W","W2S"};??
  • ????????//將路線名放在字符串數組中,以便循環創建12條路線??
  • ????????for(int?i=0;?i<directions.length;?i++){??
  • ????????????new?Road(directions[i]);??
  • ????????}??
  • ????????//創建燈的控制系統。??
  • ????????new?LampController();??
  • ????}??
  • ??
  • } ?

  •  ------- android培訓、java培訓、期待與您交流! ----------

    總結

    以上是生活随笔為你收集整理的黑马程序员:交通灯管理系统学习的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产午夜在线一区二区三区 | 国产高清一区二区 | 免费的毛片| 国内精品视频一区 | 三级性生活视频 | 天天操天天操天天操天天 | 中文字幕亚洲乱码熟女一区二区 | 日日夜夜精品视频免费 | 日韩一区二区不卡视频 | 日本一区二区三区精品 | 台湾a级艳片潘金莲 | 国产精品自拍区 | 成人理论视频 | 中文一二区 | 午夜成人免费影院 | 天堂网久久 | 国产精品久久精品 | 精品一区二区三区中文字幕 | 国产精品三级电影 | 欧美熟妇毛茸茸 | 97人人澡 | 天堂中文字幕在线 | 少妇一级淫片免费播放 | 熟女熟妇伦久久影院毛片一区二区 | 欧美黑人又粗又大的性格特点 | 欧美日韩国产一区二区在线观看 | 一区国产在线 | 欧美aaaaaaa | 日韩精品一区二区免费视频 | ,午夜性刺激免费看视频 | 吸咬奶头狂揉60分钟视频 | 欧美日韩成人在线播放 | 亚洲午夜精品久久久久久人妖 | 免费黄色在线视频 | 伊人夜色 | 秘密基地电影免费版观看国语 | av在线观| 巨大乳の揉んで乳榨り奶水 | 一呦二呦三呦精品网站 | av毛片基地 | 日韩无遮挡 | 99国产精品久久久久 | 日韩av片免费观看 | 69黄色片| 本道综合精品 | 波多野结衣在线观看一区二区 | 狠狠网站 | 天天干天天操天天干 | 日韩精品人妻中文字幕有码 | av小次郎收藏 | www.好了av | 日韩偷拍一区 | 国产精品一区二区亚洲 | 欧美一级片免费 | 免费在线观看日韩av | 精品国产午夜福利在线观看 | www毛片com| 91在线高清| 精品国产乱码久久久久久影片 | 天堂最新资源在线 | 韩国中文三级hd字幕 | 午夜视频福利在线 | 欧美一区精品 | 日本大乳奶做爰 | 成人在线观看黄色 | 国产乱码精品一区二区三区中文 | 免费国产视频在线观看 | www.夜夜骑| 日本黄色电影网址 | 三级网站在线看 | 日韩网站在线观看 | 毛片在线免费观看网址 | 国产21页 | 天堂av在线电影 | 日本性猛交 | 在线观看麻豆 | 欧美日韩制服 | 自拍偷拍三级 | 最近最新中文字幕 | 日本午夜一区二区 | 亚洲色图自拍 | 成人在线精品视频 | 国产精品96久久久久久 | 午夜爽爽影院 | 五月婷婷欧美 | 日本a视频在线观看 | 中国老太婆性视频 | 欧美老熟妇乱大交xxxxx | 欧美精品一区二区蜜桃 | 色老头一区 | 97超视频在线观看 | 黄色大片免费看 | 揉我啊嗯~喷水了h视频 | 木木影院| 网友自拍第一页 | 精品一二三四 | 亚洲二区在线观看 | 国产二区视频在线观看 | 欧美日韩有码 |