---------------------- android培训、java培训、期待与您交流! ----------------------
为什么要有枚举
枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举就是让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这个目标。所以就有了枚举。
一个普通类如何实现枚举的功能?首先构造私有的方法;然后为每个元素分别用一个公用的静态成员变量表示,枚举元素必须位于枚举体中的最开始部分,枚举元素列表的后面要有分号与其他成员分割。把枚举中的成员方法或者变量等放在枚举元素的前面,编译器会报告错误;最后,可以编写若干个公用方法或抽象方法。枚举就相当一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法。枚举是一种特殊的类,其中的每个元素都是该类的一个实例对象。
下面是一个定义一个Weekday的枚举
package cn.itcast.day1;
public abstract class WeekDay {
private WeekDay(){}
public final static WeekDay SUN = new WeekDay(){
@Override
public WeekDay nextDay() {
// TODO Auto-generatedmethod stub
return MON;
}
};
public final static WeekDay MON = new WeekDay(){
@Override
public WeekDay nextDay() {
// TODO Auto-generatedmethod stub
return SUN;
}
};
//public final static WeekDay THU = newWeekDay();
public abstract WeekDay nextDay();
/*
public WeekDay nextDay(){
if(this == SUN){
return MON;
}else{
return SUN;
}
}
*/
public String toString(){
return this == SUN?"SUN":"MON";
}
}
采用抽象的方法定义nextDay就将大量的if。else语句转移成一个个独立的子类
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima