枚举的原理:如要定义星期几或性别的变量,该怎么定义?假设引用1~7表示周一到周日,但有人可能会写成int WeekDay=0;
如代码:
abstract class WeekDay{
private WeekDay(){}
public static final WeekDay Sun=new WeekDay(){
public WeekDay nextDay(){
return Mon;
}
};
public static final WeekDay Mon=new WeekDay(){
public WeekDay nextDay(){
return Sun;
}
};
public abstract WeekDay nextDay();//采用抽象方法定义nextDay就将大量的if else语句转移成了一个个独立的类
public String toString(){
return this==Sun?"Sun":"Mon";
}
}
枚举的格式:public enum 类名{}
如
public enum WeekDay{
Sun,Mon,Tue;//元素列表,当有其他方法时应该放在元素列表的后面并加“;”如果没有其他方法则可以不写“;”