1.所有創建的枚舉類型都擴展于 java.lang.Enum. Enum 是在J2SE 5.0 里定義的一個新類,它本身不是枚舉類型.在創建枚舉類型時,必須用enum 關鍵字,不能直接地定義一個繼承Enum的類來創建一個枚舉類型,盡管所有創建的枚舉類型實際上都是Enum 的子類. 如果直接繼承Enum, compiler 就會報錯(會導致編譯錯誤).
2.枚舉類型里定義的每一個值都是枚舉類型的一個實例,比方說High是Priority的一個實例.枚舉類型又是擴展于Enum. 所以枚舉類型的每一個值聲明時, 缺省時都將映射到Enum(String name, int ordinal) 構造函數中.
3.每一個創建的枚舉類型都是Enum 的子類,除了上面調用父類 Enum 的構造函數外,枚舉類型可以使用參數為定義一些自己的構造函數.當聲明值時,只需調用此枚舉類型定義的構造函數,而且不必添加 new 關鍵字.
4.枚舉類型每一個值都是public, static and final的.也就是說,這些值是唯一的而且一旦定義了是不能被重寫或修改.而且盡管在枚舉類型每一個值聲明時沒有出現static關鍵字,實際上值都是 靜態的, 而且我們不能在值前面加上static, public,final 修飾符
5.一是這些枚舉類型的構造函數都是私有的.它是不能被其它的類或者其它的枚舉類型調用的. 而且這個私有修飾符是由編譯器自動加的,如果我們定義這些構造函數時,在前面加上public 修飾符, 就會導致編譯錯誤. 二是變量定義必須在枚舉類型值定義之后.
6.Summary
使用枚舉類型是很簡單的.它定義一個固定的、封閉的值集合,然后,在需要這些值中的某一個值時,可以通過它的名稱來指定它,這就是枚舉類型的簡單性.枚舉 類型的值就是枚舉類型的實例,編譯器會確保沒有傳入其他的類型,這就是枚舉類型的安全性.這些枚舉類型就是類本身,因此,可以對類進行的所有操作同樣可以 作用于枚舉類型上.我們要小心使用構造函數和函數重載方法,不要因為這些特性可用就任意使用它們.比如特定于常量的類主體,大多情況下可以用Switch 語句來代替,更容易讓人理解而且不容易出錯.我們也看到了Eclipse 3.1平臺對枚舉類型的支持,包括提供創建模板,錯誤信息提示等.總之,枚舉類型的靈活應用能極大的方便和簡化了我們的開發工作.

Original article: 在Eclipse 3.1中體驗J2SE 5.0的新特性