如果我可以用另一种方式初始化实例变量,为什么我应该使用构造函数

时间:2010-10-13 12:53:40

标签: java

为什么我应该使用构造函数来初始化实例变量,而在它们声明的时候是可能的?

class Frog {
     public int x = 4;
     Frog() { // Why should I use you }
}

6 个答案:

答案 0 :(得分:9)

  

您应该使用我,因为我会帮助您将初始化保存在一个地方。因为它可以帮助你的其他同事知道在哪里进行初始化,如果他们分散了代码,就不会错过。

答案 1 :(得分:6)

如果您需要的唯一初始化属于public int x = 4种类,,则不需要构造函数。

如果您正在进行的初始化比这更复杂,那么您需要一个构造函数。也许您需要打开数据库连接。或者(更简单地)x的值将在构造时由实例化方法提供。例如:Frog f = new Frog(4);

答案 2 :(得分:3)

因为类的构造函数应该完全初始化类,并且用户应该有机会根据需要设置该值。

所以你的课应该是:

class Frog 
{
    public static final int DEFAULT_VALUE = 4;

    private int x;

    Frog() { this(DEFAULT_VALUE) }
    Frog(int x) { this.x = x; }
}

答案 3 :(得分:1)

我们需要一个构造函数来提高我们可以初始化对象的灵活性。我们可以一次初始化对象的所有变量,并且可以随时使用任何值。通过初始化,我们将该值绑定到变量。此外,如果需要永久初始化变量,可以在变量初始化之前使用final关键字实现该变量。

答案 4 :(得分:0)

我的五美分。有时需要引入一些构造函数,它们会以不同的方式初始化变量。

答案 5 :(得分:-2)

U可以使用构造函数来填充该对象的私有数据。因为如果x不公开,您将无法访问它。当两者都是公开的时候,你可以使用构造函数将所有初始化放在一个地方,这样可以让同事更容易阅读,