-2

例如我有一堂课

第一类:

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

4 回答 4

2

第一种方式更直观,出现频率更高。即像这样:

public car(Color carColor)
{
    this.carColor = carColor;
}

它更具可读性。但两者都是平等的,所以这是一个风格问题。

也看到这个:我应该在构造函数内还是在构造函数外初始化变量

于 2013-03-31T19:22:52.937 回答
2

我会使用第一个选项,因为您可以在setColor().

于 2013-03-31T19:24:28.123 回答
1

我想是Class1。Getter 和 Setter 方法通常是必需的,但构造器的工作是初始化该对象的变量。

于 2013-03-31T19:24:02.887 回答
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;
}
于 2013-03-31T19:24:15.060 回答