我正在查看有关 SO 的其他问题,但我没有真正看到我的问题的解释。我读到从另一个构造函数调用构造函数(使用 this 关键字)是valid,但我不明白why这是有效的。
以前,我认为每个对象只能有一个构造函数。构造函数链接似乎打破了这一逻辑,因为在调用一个构造函数时,它会与原始的目标构造函数一起运行另一个构造函数。为什么构造函数链可以工作?
我们在同一个类中链接(调用)另一个构造函数,这样就可以避免代码重复。如果不链接每个构造函数,我们最终会重复业务细节,这会导致代码重复并且也难以维护代码。
想象一下您正在创建一辆总线。
public class Bus {
int noOfSeats;
String busColor;
public Bus() {
this(40); //// Using another constructor and proceeding with default values..
}
public Bus(int seats) {
this(seats,"red"); // Using another constructor and proceeding..
}
public Bus(int seats, String color) {
this.noOfSeats = seats;
this.busColor = color;
}
}
使用此类的人一次只能使用构造函数,而您在内部使用链接。想象一下,您有一个用默认值初始化事物并在构造函数中调用它的方法。这没有什么问题吧?
需要澄清的是,创建对象的人只调用一个构造函数。被调用的构造函数调用该类内部的其他构造函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)