星期week
public class Test {
public static void main(String[] args) {
WeekDay weekDay = WeekDay.FRI;
System.out.println(weekDay.name()); //
System.out.println(weekDay.ordinal()); // 在枚举序列中的位置
System.out.println(WeekDay.valueOf("SUN")); //获取SUN变量,打印的时候调用其toString()
System.out.println(WeekDay.values().length);
}
public enum WeekDay {
SUN(1), MON, TUE, WED, THI, FRI, SAT;
private WeekDay() {
System.out.println("first");
}
private WeekDay(int day) {
System.out.println("second");
}
}
}
/*输出
second
first
first
first
first
first
first
FRI
5
SUN
7
*/
红绿灯的例子,没有考虑红绿灯的时间,只考虑了他们的循环顺序
//枚举的每个元素都是 一个子类, 可以进行方法复写
public class Test {
public static void main(String[] args) {
TrafficLamp trafficLamp = TrafficLamp.RED;
trafficLamp = trafficLamp.nextLamp();
}
public enum TrafficLamp {
RED {
public TrafficLamp nextLamp() { //子类复写
return GREEN;
}
},
GREEN {
public TrafficLamp nextLamp() {
return YELLOW;
}
},
YELLOW {
public TrafficLamp nextLamp() {
return RED;
}
};
public abstract TrafficLamp nextLamp();
}
}