一、背景
所属包java.lang包
jdk1.5后引入的新特性
二、基本使用
(一)、 创建一个枚举
public enum TestEnum {
A,B,C;
}
以上,创建了一个简单的枚举,这个枚举里有三个枚举项,分别是A,B,C。
需要注意的是:
A,B,C每一个都称为枚举项,它们都是本类的实例。
在定义枚举项时,多个枚举项之间使用逗号分隔,最后一个枚举项后需要给出分号!但如果枚举类中只有枚举项(没有构造器、方法、实例变量),那么可以省略分号 。就像下面这样:
public enum TestEnum {
A,B,C
}
但是如果有构造器、方法等枚举项必须在第一行,否则编译出错。
所有枚举类默认都是Enum(java.lang.Enum)类的子类,编译时默认会继承Enum类。无需手动使用extends关键字来继承。
(二)、给枚举赋值
枚举不能使用 = 赋值,而是使用构造方法赋值。
public enum TestEnum {
A(1),B(2),C(3);
private int value;
private TestEnum(int value) {
this.value = value;
}
}
枚举可以有任意个属性,像这样:
public enum TestEnum {
A(1, "a", true),B(2, "b", false),C(3, "c", false);
private int intValue;
private String stringValue;
private boolean booleanValue;
private TestEnum(int intValue, String stringValue, boolean booleanValue) {
this.intValue = intValue;
this.stringValue = stringValue;
this.booleanValue = booleanValue;
}
}
注意:
枚举的构造器只能使用private访问控制器,如果省略了其构造器的访问修饰符,则默认使用priv