实现带有构造方法的枚举,当枚举只有一个成员时,就可以作为一种单例的实现模式
public class EnumTest {
public static void main(String[] args) {
WeekDay mon = WeekDay.MON;
System.out.println(mon);//名称为MON
System.out.println(mon.name());//名称为MON
System.out.println(WeekDay.valueOf("YYY"));//增加枚举,将"YYY"变为枚举类型
System.out.println(WeekDay.values().length);//返回枚举值
}
public enum WeekDay{
//成员列表必须写在所有成员之前
SUN,MON,TUE,WED,THI,FRI,SAT;//MON和MON(1)就是表示在构造
private WeekDay(){}
private WeekDay(int day){}
}
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;
}
}
}