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的新特性