例如我有一个班级
的Class1:
public class car{
private Color carColor;
public car(Color carColor)
{
this.carColor = carColor;
}
public void setColor(Color carColor)
{
this.carColor = carColor;
}
}
等级2:
public class car{
private Color carColor;
public car(Color carColor)
{
setColor(carColor);
}
public void setColor(Color carColor)
{
this.carColor = carColor;
}
}
哪种构造函数是java编码的最佳实践,为什么?
答案 0 :(得分:2)
第一种方式更直观,更经常出现。即是这样:
public car(Color carColor)
{
this.carColor = carColor;
}
它更具可读性。但两者都是平等的,所以这是一个风格问题。
也请参阅:Should I initialize variable within constructor or outside constructor
答案 1 :(得分:2)
我会使用第一个选项,因为您可以在setColor()
内进行验证。
答案 2 :(得分:1)
Class1我想。 Getter和Setter方法通常是必需的,但构造函数的工作是初始化该对象的变量。
答案 3 :(得分:1)
如果我在设置之前对变量进行了很多计算,我会在一个单独的方法中进行,否则,我会选择第一种方法。
public car(Color carColor)
{
setColor(carColor);
}
public void setColor(Color carColor)
{
Color res;
//Many calculations
//..
//..
//finally
this.carColor = res;
}
但如果我只想设置它,我会很简单:
public car(Color carColor)
{
this.carColor = carColor;
}