我正在閱讀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