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秒變綠燈,之後這樣一直循環下去