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