閱讀34 返回首頁    go 阿裏雲 go 技術社區[雲棲]


jdk1.5新特性5之枚舉之枚舉類型的應用

 

一 簡單應用

package cn.xy.Enum;

public enum TrafficLamp
{
 RED,GREEN,YELLOW;
}

TrafficLamp red = TrafficLamp.RED;
System.out.println(red);
System.out.println(red.name());
System.out.println(red.ordinal());
System.out.println(TrafficLamp.valueOf("YELLOW"));
TrafficLamp[] ts = TrafficLamp.values();
for (TrafficLamp t : ts)
{
 System.out.println(t.name());
}

 

結果

RED
RED
0
YELLOW
RED
GREEN
YELLOW

 

 

二 複雜應用

package cn.xy.Enum;

public enum TrafficLampComplex
{

 // 元素列表必須放在枚舉類的最上麵
 RED(10)
 {
  @Override
  public TrafficLampComplex nextLamp()
  {
   return GREEN;
  }

  @Override
  public String getValue()
  {
   return "紅燈,時長" + this.getTime();
  }
 },
 GREEN(10)
 {
  @Override
  public TrafficLampComplex nextLamp()
  {
   return YELLOW;
  }

  @Override
  public String getValue()
  {
   return "綠燈,時長" + this.getTime();
  }
 },
 YELLOW(5)
 {
  @Override
  public TrafficLampComplex nextLamp()
  {
   return YELLOW;
  }

  @Override
  public String getValue()
  {
   return "黃燈,時長" + this.getTime();
  }
 };

 /**
  * 時長
  */
 private int time;

 TrafficLampComplex()
 {
 }

 TrafficLampComplex(int time)
 {
  this.time = time;
 }

 /**
  * 下一個燈
  * @return
  */
 public abstract TrafficLampComplex nextLamp();

 /**
  * 取值
  * @return
  */
 public abstract String getValue();

 public int getTime()
 {
  return time;
 }

 public void setTime(int time)
 {
  this.time = time;
 }

}

TrafficLampComplex tcRed = TrafficLampComplex.RED;
System.out.println(tcRed.nextLamp());
System.out.println(tcRed.getValue());

 

結果

GREEN
紅燈,時長10

 

 

三 提示

如果理解該例子有困難,請參看本博客的《jdk1.5新特性5之枚舉之模擬枚舉類型》

 

 

最後更新:2017-04-04 07:32:06

  上一篇:go Mybatis中模煳查詢的各種寫法
  下一篇:go java線程學習3——線程的停止