我正在阅读Bruce Eckel第4版中的Thinking in Java。在章初始化&清理,页:189在第二对第一点提到:由于静态初始化而被调用的构造函数
即使它没有明确使用static关键字构造函数实际上是一个静态方法。
我有下面的代码:
class Bar {
Bar() {
System.out.println("Bar Creation");
}
}
class Foo {
static int x = 10;
static Bar b = new Bar();
Foo() {
System.out.println("Foo Creation");
}
}
public class Test {
public static void main(String[] args) {
System.out.println(Foo.x);
}
}
如果它说的是真的Foo的构造函数应该被调用。我没有看到下面这段代码发生。
输出是:
Bar Creation
10
有人能澄清这是什么意思?
我尽力引用这本书。我不认为在该陈述之前或之后的部分与该陈述在该问题的背景下有很多相关性。
感谢,
Gudge
感谢您的所有意见。我完全理解,除非创建对象,否则构造函数将不会被调用。那么这本书中的陈述意味着什么。 – gudge 2013-05-12 14:39:03