为什么我应该使用构造函数来初始化实例变量,而在它们声明的时候是可能的?
class Frog {
public int x = 4;
Frog() { // Why should I use you }
}
答案 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不公开,您将无法访问它。当两者都是公开的时候,你可以使用构造函数将所有初始化放在一个地方,这样可以让同事更容易阅读,