首页 > 代码库 > 笔记:枚举类型

笔记:枚举类型

枚举类型的定义格式如:

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;

????}

}

笔记:枚举类型