enum Color {
RED, GREEN, BLUE;
// 构造函数
private Color() {
System.out.println("Constructor called for : " + this.toString());
}
public void colorInfo() {
System.out.println("Universal Color");
}
}
public class NumTest {
// 输出
public static void main(String[] args) {
Color c1 = Color.RED;
System.out.println(c1);
c1.colorInfo();
}
}
我以为运行的结果是"调用构造函数:RED"为什么构造函数被调用三次
类一初始化,枚举常量就会全部初始化——只要使用了Color
。由此构造了三个RED
、GREEN
、BLUE
。
请参阅Java语言规范,第8.9章枚举类。