可能重复:
Should I initialize variable within constructor or outside constructor初始化的声明VS在构造函数初始化
我想知道,这是一个更好的做法,为什么。我应该在声明时初始化类字段,还是应该在构造函数中执行它?鉴于这是一个简单的单行初始化。
class Dude
{
String name = "El duderino";
Dude() {
// irrelevant code
}
}
与
class Dude
{
String name;
Dude() {
name = "El duderino";
// irrelevant code
}
}
编辑:我知道那里的款式之一将在可能抛出异常执行初始化代码的情况下,可以优先于其他类似的情况。我在这里讨论的是两种风格完全相同的情况。两种方式都可以完成同样的任务。那我应该用那个?
这听起来很合理。但是我所说的是那些将要被初始化的字段,即从构造函数中检索的数据不会被使用。像初始化一个空的内部列表来存储子元素。你还会在构造函数中初始化它吗? – amrhassan
@amrhassan - 在这种情况下,我不会在声明它时初始化它,并且我会声明它是'final'。 – erickson
我可以看到在你的例子中使它成为'final'的原因,但是如果有setter'setName(String name)'... – knownasilya