用枚舉來實現一個交通燈

package com.foresee.test;

/**
 * 利用枚舉來定義紅黃綠燈
 * 
 * @author qinyujun
 */
public class EnumTest {

	
	public static void main(String[] args) {

		try{
			  while(true){
				System.out.println("當前燈:"+TrafficLamp.GREEN);
				Thread.currentThread().sleep(TrafficLamp.GREEN.getTime());
				System.out.println("當前燈:"+TrafficLamp.GREEN.nextLamp());
				Thread.currentThread().sleep(TrafficLamp.GREEN.nextLamp().getTime());
				System.out.println("當前燈:"+TrafficLamp.GREEN.nextLamp().nextLamp());
				Thread.currentThread().sleep(TrafficLamp.GREEN.nextLamp().nextLamp().getTime());
			  }
		}catch(Exception e){
			e.printStackTrace();
		}
	}


	public enum TrafficLamp {
		GREEN(5000){
			public TrafficLamp nextLamp(){
				return YELLOW;
			}
		}, YELLOW(2000){
			public TrafficLamp nextLamp(){
				return RED;
			}
		}, RED(5000){
			public TrafficLamp nextLamp(){
				return GREEN;
			}
		};
		//獲取下一個燈,在枚舉元素中實現
		public abstract TrafficLamp nextLamp();
		//燈亮的時間
		private long time;

		private TrafficLamp(long time) {
			this.time = time;
		}
		
		public long getTime(){
			return this.time;
		}
	}

}

在看張孝祥教學視頻裏學到枚舉類型,這個不常用的特性,今天就學着做了一個交通燈。


運行效果:

先是綠燈,等過了5秒後,變爲黃燈,過了2秒變爲紅燈,再過5秒變綠燈,之後這樣一直循環下去



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章