在此示例中,我们将学习如何在Java中从一个构造函数调用另一个构造函数。
要理解此示例,您应该了解以下Java编程主题:
class Main { int sum; //第一个构造函数 Main() { //调用第二个构造函数 this(5, 2); } //第二个构造函数 Main(int arg1, int arg2) { //两个值相加 this.sum = arg1 + arg2; } void display() { System.out.println("总和: " + sum); } // main 类 public static void main(String[] args) { // 调用第一个构造函数 Main obj = new Main(); // 调用显示方法 obj.display(); } }
输出结果
总和: 7
在上面的示例中,我们创建了一个名为Main的类。在这里,您在Main类内部创建了两个构造函数。
Main() {..} Main(int arg1, int arg2) {...}
在第一个构造函数中,我们使用了 this 关键字来调用第二个构造函数。
this(5, 2);
在这里,通过传递参数 5 和 2 从第一个构造函数调用第二个构造函数。
注意:构造函数中调用另一个构造函数的行,应为该构造函数的第一行。也就是说,this(5, 2)应该是 Main() 的第一行。
我们还可以使用super(),从子类的构造函数中调用超类的构造函数。
// 超类 class Languages { //超类的构造函数 Languages(int version1, int version2) { if (version1 > version2) { System.out.println("最新版本是: " + version1); } else { System.out.println("最新版本是: " + version2); } } } //子类 class Main extends Languages { //子类的构造函数 Main() { //调用超类的构造函数lass super(11, 8); } // main 方法 public static void main(String[] args) { // 调用第一个构造函数 Main obj = new Main(); } }
输出结果
最新版本是: 11
在上面的示例中,我们创建了一个名为Languages的超类和一个Main子类。 在Main类的构造函数中,请注意以下行:
super(11, 8);
在这里,我们从子类(Main())的构造函数中调用超类的构造函数(即Languages(int version1,int version2))。