【发布时间】:2013-05-12 14:16:38
【问题描述】:
我正在阅读 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
有人能解释一下这是什么意思吗?
我已尽力引用这本书。我认为该陈述之前或之后的部分与该问题的上下文中的该陈述没有太大关系。
谢谢,
判断
【问题讨论】:
-
感谢您的所有 cmets。我完全理解,除非创建对象,否则不会调用构造函数。那么书中的说法是什么意思。
标签: java static constructor static-initialization