Java面試題之交通燈管理系統

交通燈管理系統

總結:通過燈管理器管理各個燈的變化,和通過Road類進行車輛的產生的和減少.兩者通過Road對象上的燈的狀態進行聯繫.


實現步驟:

1,創建一個Lamp類(枚舉),用於操作燈.

   定義12個枚舉對象,相當於十二盞燈(每個對象包含三個成員對象,自身燈的狀態,相對的燈的名稱,下一個燈的名稱[初始各個狀態都爲false]).

   定義一個isLight()方法,用於返回燈對象的狀態.

   定義一個light()方法,用於將當前燈和相對的燈的狀態變綠(true).

   定義一個black()方法,用於將當前燈和相對的燈的狀態變紅(false),並返回下一個燈對象.

 

2,創建燈管理器(LampController),用於控制燈狀態的變化

   指定一個當前燈,並將其點亮(用light()方法)

   在構造函數中啓動一個定時器,每隔10秒,點亮下一個燈(用black()方法).並將當前燈指向爲下一個燈.

 

3,創建一個Road類,實現車輛的產生和減少

   定義一個集合用存儲車輛,

   在構造函數中啓動一個線程,用於不定時(Thread的sleep()方法)產生該路線上的車輛.,並將該車輛儲存到集合中.

   再在構造函數中啓動一個定時器,每個一秒進行判斷一下這條路上的燈的狀態,爲true(綠)就減少一輛車輛(刪除集合第一個元素remove(0)),否則繼續判斷.

(其中Road的name和該路上的燈的名一樣).

 

4測試類TrafficTest

   創建一個數組,將12條路線的名稱存放在數組中.

   循環,創建12個Road對象(用於產生個路線上的車,和車輛的減少).

   創建一個LampController對象(用於啓動燈,並開始燈的控制).
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章