在此示例中,我們將學習如何在Java中從一個構造函數(shù)調用另一個構造函數(shù)。
要理解此示例,您應該了解以下Java編程主題:
class Main {
int sum;
//第一個構造函數(shù)
Main() {
//調用第二個構造函數(shù)
this(5, 2);
}
//第二個構造函數(shù)
Main(int arg1, int arg2) {
//兩個值相加
this.sum = arg1 + arg2;
}
void display() {
System.out.println("總和: " + sum);
}
// main 類
public static void main(String[] args) {
// 調用第一個構造函數(shù)
Main obj = new Main();
// 調用顯示方法
obj.display();
}
}輸出結果
總和: 7
在上面的示例中,我們創(chuàng)建了一個名為Main的類。在這里,您在Main類內(nèi)部創(chuàng)建了兩個構造函數(shù)。
Main() {..}
Main(int arg1, int arg2) {...}在第一個構造函數(shù)中,我們使用了 this 關鍵字來調用第二個構造函數(shù)。
this(5, 2);
在這里,通過傳遞參數(shù) 5 和 2 從第一個構造函數(shù)調用第二個構造函數(shù)。
注意:構造函數(shù)中調用另一個構造函數(shù)的行,應為該構造函數(shù)的第一行。也就是說,this(5, 2)應該是 Main() 的第一行。
我們還可以使用super(),從子類的構造函數(shù)中調用超類的構造函數(shù)。
// 超類
class Languages {
//超類的構造函數(shù)
Languages(int version1, int version2) {
if (version1 > version2) {
System.out.println("最新版本是: " + version1);
}
else {
System.out.println("最新版本是: " + version2);
}
}
}
//子類
class Main extends Languages {
//子類的構造函數(shù)
Main() {
//調用超類的構造函數(shù)lass
super(11, 8);
}
// main 方法
public static void main(String[] args) {
// 調用第一個構造函數(shù)
Main obj = new Main();
}
}輸出結果
最新版本是: 11
在上面的示例中,我們創(chuàng)建了一個名為Languages的超類和一個Main子類。 在Main類的構造函數(shù)中,請注意以下行:
super(11, 8);
在這里,我們從子類(Main())的構造函數(shù)中調用超類的構造函數(shù)(即Languages(int version1,int version2))。