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