模拟一个枚举类:
//枚举类对象只能该类规定的几个值,这个值不是普通基本值而是对象值。每一个枚举值都是一个对象
public abstract class WeekDay {
private WeekDay(){};
//用了匿名内部类,用抽象方法定义NextDay 将大量的else if 语句转移成一个个独立类
public final static WeekDay SUN = new WeekDay(){
@Override
public WeekDay nextDay() {
return MON;
}
};
public final static WeekDay MON =new WeekDay(){
@Override
public WeekDay nextDay() {
return SUN;
}
}
;
public abstract WeekDay nextDay();
public String toString(){
return this == SUN ? "SUN":"MON";
}
}
定义一个基本的枚举类
public enum weekDay{
//(1)表示调用哪个构造方法
SUN(1),MON,TUE,WED,THI,FRI,STR;
//所有方法必须在参数下面,构造方法必须是私有
private weekDay(){}
private weekDay(int day){
}
}
定义一个枚举的抽象方法
public enum TrafficLamp{
RED(10){
@Override
public TrafficLamp nextLamp() {
return GREEN;
}
},GREEN(45){
@Override
public TrafficLamp nextLamp() {
return YELLOW;
}
},YELLOW(5){
@Override
public TrafficLamp nextLamp() {
return RED;
}
};
public abstract TrafficLamp nextLamp();
private int time;
private TrafficLamp(int time){
this.time=time;
}
}