一.簡單枚舉
package helloworld;
public enum SimpleEnum {
SPRING,
SUMMER,
AUTUMN,
WINTER
}
-------------測試-----------------
public class enumMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(SimpleEnum sea:SimpleEnum.values())
{
System.out.println("季節:"+sea+" "+"ordinal:"+sea.ordinal());
}
}
}
調用枚舉類的values()方法,遍歷可以獲得枚舉類的所有枚舉值
ordinal是排列的順序,從0開始,每個枚舉值都有一個對應的ordinal,按聲明的順序進行排序。
------------結果--------------------------
季節:SPRING ordinal:0
季節:SUMMER ordinal:1
季節:AUTUMN ordinal:2
季節:WINTER ordinal:3
二.帶參數舉
public enum season {
SPRING("春天","春風扶楊柳"),
SUMMER("夏天","映日荷花別樣紅"),
AUTUMN("秋天","落霞與孤鶩齊飛"),
WINTER("冬天","窗含西嶺千秋雪");
private final String seasonName;
private final String seasonDesc;
private season(String seasonName,String seasonDesc)
{
this.seasonName=seasonName;
this.seasonDesc=seasonDesc;
}
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
}
------------測試--------------------------------------
public class enumMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(season sea:season.values())
{
System.out.println("枚舉類型:"+sea+" "+"季節:"+sea.getSeasonName()+" "+"季節描述:"+sea.getSeasonDesc()+" "+"ordinal:"+sea.ordinal());
}
}
}
--------------------測試結果-------------------------------
枚舉類型:SPRING 季節:春天 季節描述:春風扶楊柳 ordinal:0
枚舉類型:SUMMER 季節:夏天 季節描述:映日荷花別樣紅 ordinal:1
枚舉類型:AUTUMN 季節:秋天 季節描述:落霞與孤鶩齊飛 ordinal:2
枚舉類型:WINTER 季節:冬天 季節描述:窗含西嶺千秋雪 ordinal:3
枚舉類中的構造必須是private修飾的,所以枚舉類被設計爲單例模式,即枚舉類型會在JVM加載時,實例化枚舉對象,枚舉類中有多少個就實例化多少個,JVM爲了保證每一個枚舉類型實例的唯一,是不會外部進行new操作的,所以把構造設爲private,防止用戶生成實例,破壞唯一性。