Java 5 之后就有了 enum
关键字——与 class
, interface
关键字地位相同,用于定义枚举类。
枚举类是一种特殊的类,它一样可以有自己的成员变量、方法,可以实现一个或者多个接口,也可以定义自己的构造器。一个 Java 源文件最多只能定义一个 public
访问权限的枚举类,且该 Java 源文件也必须和该枚举类的类名相同。
枚举类与普通类的区别
- 枚举类可以实现一个或多个接口,使用
enum
定义的枚举类默认继承java.lang.Enum
,而非Object
。因此枚举类不能显示继承其他父类。其中java.lang.Enum
类实现了java.lang.Serializable
和java.lang.Comparable
两个接口。 - 使用
enum
定义、非抽象的枚举类默认会使用final
修饰,因此枚举类不能派生子类。 - 构造器默认且只能使用
private
修饰。 - 枚举类的所有实例必须在枚举类的第一行显示列出,否则则个枚举类永远都不能产生实例。列出这些实例时,系统会自动添加
public static final
修饰。无须显示添加。
|
|
使用某个枚举类的实例,EnumClass.variable
|
|
参考
学习自《疯狂 Java 讲义》第三版