4) 點擊 Finish 按鈕, 生成Priority 的類(定義???), 並聲明Priority 的每一個值, 如下圖 2所示:(High, Medium, low從何而來???)
圖 2: 枚舉類型Priority
在創建枚舉類型時,注意幾個重要的概念.
所有創建的枚舉類型都擴展於 Java.lang.Enum. Enum 是在J2SE 5.0 裡定義的一個新 類, 它本身不是枚舉類型.在創建枚舉類型時,必須用enum 關鍵字,不能直接地定義一 個繼承Enum的類來創建一個枚舉類型,盡管所有創建的枚舉類型實際上都是Enum 的子類. 如果直接繼承Enum, compiler 就會報錯(會導致編譯錯誤).如圖3 所示
圖3. 直接繼承Enum 類
枚舉類型裡定義的每一個值都是枚舉類型的一個實例,比方說High是Priority的 一個實例.枚舉類型又是擴展於Enum. 所以枚舉類型的每一個值聲明時, 缺省時都將映射 到Enum(String name, int ordinal) 構造函數中.換句話說,enum Priority {High, Medium, Low } 的實現是調用了下面的Enum 構造函數:
清單2 映射的構造函數調 用
new Enum< Priority >("High", 0);
new Enum< Priority >("Medium", 1);
new Enum< Priority >("Low", 2);
每一個創建的枚舉類型都是Enum 的子類,除 了上面調用父類 Enum 的構造函數外,枚舉類型可以使用參數為定義一些自己的構造函數 .當聲明值時,只需調用此枚舉類型定義的構造函數,而且不必添加 new 關鍵字.在清單3 裡, Priority 的一個實例生成,這個實例就是High (38).
清單3.其它構造函 數調用
enum Priority {
High (38),
Medium (36.5),
Low (5.2);
double temperature;
Priority (double p)
temperature = p;
}