jAVA中枚舉的使用

一.簡單枚舉

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,防止用戶生成實例,破壞唯一性。



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