Java类,在类构造函数中设置值的最佳实践是什么?

时间:2013-03-31 19:21:29

标签: java

例如我有一个班级

的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编码的最佳实践,为什么?

4 个答案:

答案 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;
}