我是一名Java程序员,目前正在阅读GoF关于设计模式的书籍,其中的例子以C ++和Smalltalk语法给出。我在C ++中遇到了一个特殊的语法,我发现它被称为member initialization list。从给出的答案来看,使用成员初始化列表似乎比使用成员变量的赋值更好(更有效)。在Java中有类似的东西吗?如果没有,那么Java设计师应该有一个很好的理由不包含这个功能。你对此有何看法?
答案 0 :(得分:3)
感谢C ++中必要的原因并不适用于Java。
字段只是引用或基元,因此您无需担心构建字段对象并对其执行赋值操作。
Java允许在构造函数体中只分配一次最终字段(虽然规范很简单)。
答案 1 :(得分:1)
不,您需要在声明,构造函数或从构造函数调用的初始化方法中初始化成员。
(假设成员需要初始化超出其默认值。)