Enum是一个特殊的类
Java 中的枚举类型(enum)实际上是一种特殊的类。enum编译后是一个特殊的类(有些类似单例模式)这些实例在声明时就被创建,并在整个应用程序的生命周期中只存在一个实例。
enum 用于定义包含固定数量实例的枚举类型。枚举类型的优势在于它提供了更类型安全、更清晰和更具可读性的方式来表示一组相关的常量。
枚举类的构造函数默认是私有的,这是因为枚举常量在声明时就被创建,而且在整个应用程序的生命周期内,它们的数量是固定的
enum的实现,
public final class MyEnum extends Enum<MyEnum> {
//枚举的实例在编译时静态定义,列举在 enum 关键字中。public static final MyEnum FIRST = new MyEnum("FIRST");public static final MyEnum SECOND = new MyEnum("SECOND");// ...private MyEnum(String name) {// 构造函数的实现}// 其他方法和实现
}MyEnum instance = MyEnum.FIRST;//instance 实际上是指向 MyEnum.FIRST 这个唯一的实例的引用。
枚举常量的成员变量默认是 public static final 的
values(), ordinal() 和 valueOf() 方法
enum 定义的枚举类默认继承了 java.lang.Enum 类,并实现了 java.lang.Serializable 和 java.lang.Comparable 两个接口。
values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 类中:
- values() 返回枚举类中所有的值。
- ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。
- valueOf()方法返回指定字符串值的枚举常量。