笔记:枚举类型
枚举类型的定义格式如:
public enum Size{ SMALL,MEDIUM,LARGE,EXTRA_LARGE}
实际上,这个声明定义了一个类 size,该类是一个特殊的类,可以定义自己的数据字段、方法、可以实现接口,也可以定义自己的构造器。但枚举类使用 enum 定义后在编译后默认继承了 java.lang.Enum 类,而不是普通的继承 Object类。Enum 声明类继承了 Serializable 和 Comparable 两个接口。且采用 enum 声明后,该类会被编译器加上 final 声明(同 String),故该类是无法继承的。枚举类的内部定义的枚举值就是该类的实例(且必须在第一行定义,当类初始化时,这些枚举值会被实例化)。由于这些枚举值的实例化是在类初始化阶段,所以应该将枚举类的构造器(如果存在),采用 private 声明(这种情况下默认也是 private),示例代码如下:
public enum Size {
// 第一行必须定义枚举常量
SMALL("小号"),MEDIUM("中号"),LARGE("大号"),EXTRA_LARGE("超大号");
private String desc;
private Size(String desc) {
this.setDesc(desc);
}
public String getDesc() {
return desc;
}
private void setDesc(String desc) {
this.desc = desc;
}
}