【发布时间】:2012-07-10 07:05:55
【问题描述】:
我了解到,在 Java 中,静态块在类初始化时执行,而实例块在类的每个实例构造之前执行。我总是在实例块之前看到要执行的静态块。为什么enums 的情况相反?
谁能解释一下示例代码的输出:
enum CoffeeSize {
BIG(8), LARGE(10),HUGE(12),OVERWHELMING();
private int ounces ;
static {
System.out.println("static block ");
}
{
System.out.println("instance block");
}
private CoffeeSize(int ounces){
this.ounces = ounces;
System.out.println(ounces);
}
private CoffeeSize(){
this.ounces = 20;
System.out.println(ounces);
}
public int getOunces() {
return ounces;
}
}
输出:
实例块
8
实例块
10
实例块
12
实例块
20
静态块
【问题讨论】:
-
我只是想补充一点,我会立即成为任何提供
OVERWHELMING尺寸咖啡杯的咖啡馆的常客。
标签: java enums static-block