今天刚看张老师的枚举视频,写点总结
一.为什么要有枚举
1.枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错.
2.枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标.
二.普通类如何实现枚举功能
1.私有化构造函数.
2.每个元素分别用一个公有的静态成员变量表示.
3.可以有若干个公有方法或抽象方法.
public enum TrafficLamp{
//枚举列表必须写在最前面
RED(30){ //构造函数有参
public TrafficLamp nextLamp(){ //枚举每个成员都是自己的对象,所以必须实现自己的抽象方法
return GREEN;
}
},
GREEN(45){
public TrafficLamp nextLamp(){
return YELLOW;
}
},
YELLOW(5){
public TrafficLamp nextLamp(){
return RED;
}
};
public abstract TrafficLamp nextLamp();
private int time;
private TrafficLamp(int time){this.time = time;}
}
***枚举的每一个元素都是该类的一个实例对象
枚举常量在比较时,需要使用equals或compareTo方法。
switch选择时,可直接使用枚举常量值。