跳到主要内容

Java程序从一个构造函数调用另一个

要理解这个示例,你需要了解以下 Java 编程 主题:

示例 1: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();

// 调用 display 方法
obj.display();
}
}

输出

和为: 7

在上面的示例中,我们创建了一个名为 Main 的类。这里,你在 Main 类内创建了两个构造器。

Main() {..}

Main(int arg1, int arg2) {...}

在第一个构造器内部,我们使用了 this 关键字来调用第二个构造器。

this(5, 2);

这里,第二个构造器被第一个构造器通过传递参数 52 来调用。

注意:调用另一个构造器的语句应该是构造器的第一行。也就是说,this(5, 2) 应该是 Main() 的第一行。

示例 2:在子类构造器中调用父类的构造器

我们也可以使用 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() {
// 调用父类的构造器
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))。