可能重复:
我应该在构造函数或外部构造函数中初始化变量
我想知道,这是一个更好的做法,为什么.我应该在声明时初始化类字段,还是应该在构造函数中执行?鉴于它是一个简单的单行初始化.
class Dude
{
String name = "El duderino";
Dude() {
// irrelevant code
}
}
Run Code Online (Sandbox Code Playgroud)
与
class Dude
{
String name;
Dude() {
name = "El duderino";
// irrelevant code
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我知道其中一种样式优先于另一种样式的情况,例如执行可能引发异常的初始化代码的情况.我在这里谈论的是两种风格完全相同的情况.两种方式都可以完成同样的任务.我应该使用哪个?
如果只能通过访问器(“ setter”方法)设置成员,则我更喜欢第一种样式。它暗示了初始化值是构造时的默认值。
如果可以在构造过程中指定成员,则通常将默认值从带有较少参数的构造函数传递给适当的构造函数。例如,
final class Dude {
private final String name;
Dude() {
this("El Duderino");
}
Dude(String name) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12735 次 |
| 最近记录: |