意义
在某些情况下,一个类的对象时有限且固定的;实例有限且固定的类,称为枚举类!!
如季节类,它只有春夏秋冬4个对象;
如性别类,男人类,和女人类,人妖除外;
好处
枚举的好处:可以将常量组织起来,统一进行管理。
枚举的典型应用场景:错误码、状态机等
enum是一种受限制的类,并且具有自己的方法
枚举的方法
在enum中,提供了一些基本方法:
values()
:返回enum实例的数组,而且该数组中的元素严格保持在enum中声明时的顺序。
name()
:返回实例名。
ordinal()
:返回实例声明时的次序,从0开始。
getDeclaringClass()
:返回实例所属的enum类型。
equals()
:判断是否为同一个对象。
地位
Java 中使用 enum 关键字来定义枚举类,其地位与 class、interface 相同;
枚举类
枚举类是一种特殊的类,它和普通的类一样,有自己的成员变量、成员方法、构造器 (只能使用 private 访问修饰符,所以无法从外部调用构造器,构造器只在构造枚举值时被调用)
- 用 enum 定义的枚举类默认继承了 java.lang.Enum 类,
- 并实现了 java.lang.Seriablizable 和 java.lang.Comparable 两个接口;
- 所有的枚举值都是 public static final 的,且非抽象的枚举类不能再派生子类
- 枚举类的所有实例(枚举值)必须在枚举类的第一行显式地列出,否则这个枚举类将永远不能产生实例。列出这些实例(枚举值)时,系统会自动添加 public static final 修饰,无需程序员显式添加
// 定义一个星期的枚举类
// 在第一行显式地列出7个枚举实例(枚举值),系统会自动添加 public static final 修饰
public enum WeekEnum {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;
}