原因
使用一个专门的类存储静态常量在类型安全和使用方便性上并没有多少好处。
作用
定义有限个数对象的一种结构,使修改,管理更方便。
例如:人的性别:{男,女},一周几天:{一,二…六,日}
例子
enum Sex {
MALE, FEMALE;
}
public class Main {
public static void main(String[] args){
// 不可以new,编译会提示错误
// Sex aSex = new Sex();
Sex aSex = Sex.MALE;
System.out.println(aSex);
// 编译出错
// Sex bSex = Sex.MAN;
// 使用枚举类.values()可以得到当前枚举类所有合法值的数组
for (Sex sex:
Sex.values()) {
System.out.println(sex);
}
Sex dSex = Sex.MALE;
// 可以使用switch来判断值
switch (dSex) {
case MALE:
System.out.println("男");
break;
case FEMALE:
System.out.println("女性");
break;
default:
System.out.println("未知错误");
break;
}
}
}
Enum类(抽象类)
- enum默认继承Enum类
- 所包含的方法
enum Sex {
MALE("男性", 20), FEMALE("女性", 20);
private String s;
private Integer age;
Sex(String s, int i) {
this.s = s;
this.age = i;
}
@Override
public String toString() {
return "Sex{" +
"s='" + s + '\'' +
", age=" + age +
'}';
}
}
public class Main {
public static void main(String[] args){
Sex aSex = Sex.MALE;
System.out.println(aSex);
}
}
// 结果:Sex{s='男性', age=30}