6.9.3 枚举类的成员变量 方法和构造器
6.9.3 枚举类的成员变量 方法和构造器
枚举类也是一种类,只是它是一种比较特殊的类,因此枚举一样可以定义成员变量、方法和构造器
。
枚举列成员变量使用private final修饰
- 建议将枚举类的成员变量都使用
private final
修饰。
定义私有带参构造器来初始化成员变量
- 如果将所有的成员变量都使用了
final
修饰符来修饰,所以要在构造器里为这些成员变量指定初始值,因此应该为枚举类显式定义带参数的构造器。 - 当然也可以在定义成员变量时指定默认值,或者在初始化块中指定初始值,但这两种情况并不常见。
一旦为枚举类显式定义了带参数的构造器,列出枚举值时就必须对应地传入参数。
枚举类构造器不用显示调用
枚举类的构造器要定义为private
,由枚举类的第一行代码定义的枚举类对象隐式调用。在枚举类第一行代码中列出的枚举值:MALE("男"), FEMALE("女");
时,实际上就是隐式的调用构造器来创建枚举类对象
,只是这里无须使用new
关键字,也无须显式调用构造器。
在前面列出枚举值时无须传入参数,甚至无须使用括号,仅仅是因为前面的枚举类包含系统提供的默认无参数的构造器。
枚举类的构造器默认就是私有的,所以,定义构造器的时候可以省略private
关键字。
如何获取枚举类对象
通过枚举类的valueOf
静态方法即可获得枚举类的实例,调用的格式为:类名.valueOf("枚举实例名")
。
如何调用枚举类的实例方法
- 通过枚举类的
valueOf
方法获取到枚举类对象后,就可以通过该对象的实例方法了,调用的格式为枚举类对象.实例方法()
- 通过枚举类还有一个更简单的调用实例方法的形式,调用的格式为:
枚举类类名.实例.实例方法()
.
如果获取枚举类对象的成员变量
- 在枚举类中定义
getter
方法 - 通过调用
getter
方法来获取成员变量,推荐使用枚举类类名.实例.getter()
方法这种调用形式。
实例
目录结构
1 | G:\Desktop\随书源码\疯狂Java讲义(第4版)光盘\codes\06\6.9\best |
枚举类
1 | public enum Gender { |
测试类:获取枚举实例中的成员变量值
1 | public class Test { |
运行结果如下:
1 | 枚举实例MALE的name成员变量的值为:男 |
可以看到这两种方式都可以正确调用getter
方法,而且二中形式调用起来更方便.