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);
这里,第二个构造器被第一个构造器通过传递参数 5 和 2 来调用。
注意:调用另一个构造器的语句应该是构造器的第一行。也就是说,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)
)。