概念
用于代表“实例已经固定”的类,而且定义时就必须在【第一行】创建、并列出来。
[修饰符] enum 枚举名
{
//立即在第一行列出枚举的实例
}
枚举类与普通类的区别
- 枚举类可以实现一个或多个接口,使用enum定义的枚举类默认继承了Java.lang.Eunm类,而不是直接继承Java.lang.Object类
- 使用enum定义、非抽象的枚举类默认会使用final修饰,因此枚举类不能派生子类。
- 枚举类的构造器只能使用private修饰。
- 枚举类的所有实例必须在枚举类的第一行显式指出;列出的实例,系统会自动添加 public static final修饰
枚举类含有的方法
- 所有枚举类都含有values()方法,可以遍历所有枚举值。
- 如果枚举类里已经含有抽象方法,该枚举类默认含有abstract修饰,此时该枚举类没有final修饰。
枚举类含有的成员
- 实例(必须在第一行显式指出)
★列出枚举值,并不是简单定义几个枚举值的变量名
而是调用枚举类的构造器来创建相应的实例。 - 成员变量
- 方法
- 构造器(只能用private修饰)
- 初始化块
- 内部类(很少使用)
★有了枚举以后,它的实例已经创建出来了,直接使用即可。
枚举类含有抽象方法
- 在创建枚举值,要将抽象方法重写
枚举类实现接口
- 实现接口,并直接实现所有的抽象方法。
此时枚举类就不再是抽象枚举了。 - 实现接口,但并不直接实现抽象方法。
则需要在每个枚举值里分别实现抽象方法。