枚举
定义有限数量的同类常量如:
级别:低、中、高。
季节:春、夏、秋、冬。
如线程类的状态:new (未启动线程)-runnable(执行中线程)-blocked(被阻塞等待监视器锁定)-waiting(无限等待另一个线程执行)-timed_waiting(等待另一个线程执行最多等待时间操作)-terminated(已退出线程)
注意事项:
- 一旦定义了枚举,最好不要修改里面的值。
- 默认继承是java.lang.Enum类而不是Object类。
- 枚举类不能有子类,因为其枚举类默认被final修饰。
- 只能有private构造方法。
- Switch中使用枚举时,直接使用常量名,不用携带类名。
- 不能定义name属性,因为自带name属性,
- 不要为枚举类中的属性提供set方法,不符合最初设计初衷。
枚举类:
public enum Level {
LOW(1),MEDIUM(50),HIGH(100);
private int levelValue;
private Level(int levelValue) {
this.levelValue = levelValue;
}
}
枚举接口:
每一个枚举类型都可以实现一个接口。
LOW() {
@Override
public void show() {
}
},
MEDIUM() {
@Override
public void show() {
}
},
HIGH() {
@Override
public void show() {
}
};