6

我是一名 Java 程序员,目前正在阅读有关设计模式的 GoF 书籍,其中示例以 C++ 和 Smalltalk 语法给出。我在 C++ 中遇到了一种特殊的语法,我发现它被称为成员初始化列表。从给出的答案看来,使用成员初始化列表似乎比使用成员变量赋值是一种好习惯(效率更高)。Java中有类似的东西吗?如果不是,那么 Java 设计者没有加入这个特性应该是有充分理由的。您对此有何看法?

4

2 回答 2

4

谢天谢地,在 C++ 中需要它的原因不适用于 Java。

字段只是引用或原语,因此您不必担心正在构造字段对象并对它们执行赋值操作。

Java 允许在构造函数主体中只分配一次 final 字段(尽管这方面的规范非常冗长)。

于 2013-02-02T18:19:07.900 回答
1

不,您需要在其声明、构造函数或从构造函数调用的初始化方法中初始化成员。

(假设成员需要超出其默认值的初始化。)

于 2013-02-02T17:20:52.463 回答