哪个是初始化实例变量的最佳方法?
1 - 默认构造函数
中的实例初始化块myClass(){ { instanceVariable = 1; } }
2 - 在默认构造函数块
中赋值myClass(){ instanceVariable = 1; }
3 - 制作我自己的实例(带参数)
myClass(int instanceVariable){ this.instanceVariable = 1; }
非常感谢, 约翰
答案 0 :(得分:1)
选项1:没有任何意义。那个内部块无论如何都没有增加任何价值;除了负面的:困惑你的读者。您永远不希望您的源代码混淆您的读者。
如果您拥有,则选择选项3(因为您希望此字段可配置)。
更重要的是:默认情况下,将私人最终放在您的字段上。因为真正重要的不是 where 你的字段被初始化,而是它们被初始化的事实;理想情况下:恰好一次。
答案 1 :(得分:1)
更合适的方式可能是2
和3
// final if not modifiable.
private final int instanceVariable;
public MyClass() {
// Make use of overloading to call the other constructor with the
// default value 1, if the construction process is the same.
// Work with DRY(Dont repeat yourself) here.
this(1);
}
public MyClass(int instanceVariable) {
this.instanceVariable = instanceVariable;
}