// Enum 一个类型,只有固定几个对象
// 1.4 用类实现enum
// (1) 防止继承,继承可以new出父类引用对象
// (2) 防止外部new,构造方法私有
// (3) 提供一组外部可以获取的清单常量
// (4) 提供公共方法获取所有清单常量
final class Seasons { // 禁止继承
// 多例设计模式
public static final Seasons SPRING = new Seasons();
public static final Seasons SUMMER = new Seasons();
public static final Seasons AUTUMN = new Seasons();
public static final Seasons WINTER = new Seasons();
private Seasons() {} // 防止外部new
public static final Seasons[] values() {
Seasons[] s = {
SPRING, SUMMER, AUTUMN, WINTER
};
return s;
}
}
// 1.5 实现enum
enum Season {
SPRING, SUMMER, AUTUMN, WINTER
}
public class Enum {
public static void main(String[] args) {
Season s = Season.SPRING;
Seasons ss = Seasons.SPRING;
Season[] sarr = Season.values();
for (Season s2:sarr) {
System.out.println(s2);
}
}
}