什麼是 Java 中的構造函數重載

已發表: 2022-11-16

全球對 Web 應用程序的需求正在上升。 Java 已成為需要進行大規模編程的開發人員的首選。 Java 的流行依賴於它的動態特性、用戶友好的界面以及與領先操作系統的高度兼容性。 該語言具有豐富的 API。 Java 的另一個優勢是它提供了強大的社區支持和出色的文檔服務。 不要忘記 Java 提供的開發工具套件。

目錄

Java 中的構造函數是什麼意思?

Java中的構造函數主要用於初始化對象的狀態。 與方法類似,構造函數由一組必須在創建對象時執行的指令或語句組成。

Java 中對構造函數的需求是什麼?

為了解釋 Java 中對收縮器的需求,讓我們舉一個盒子的例子。 將盒子視為一個類。 該框將具有不同的變量,例如長度、寬度和高度。 當需要創建一個對象時,框類將不會為其尺寸定義任何值。 創建新對象時,構造函數以兩種方式為類變量賦值——通過程序員傳遞的各種參數或使用默認的 Java 構造函數。

Java 中的構造函數重載是什麼意思?

在構造函數重載中,定義了同一個類的多個構造函數。 但是,每個構造函數都應該有一個唯一的簽名或特定的輸入參數。 Java 中構造函數重載程序使單個類可以擁有多個構造函數,這些構造函數的區別在於傳遞的參數列表。 每個重載的構造函數都用於執行各種類任務。

Java 編譯器根據參數類型、參數列表和輸入參數的數量來識別重載的構造函數。 很明顯,重載的構造函數具有不同的簽名。 構造函數的簽名將包含其參數類型及其名稱。 當兩個類構造函數具有相同的簽名時,有時會出現歧義問題。 在這種情況下,編譯器無法區分兩者。 因此它顯示錯誤通知。 有時,存在具有不同簽名的重載構造函數。 在這種情況下,編譯器會根據不同對象的輸入參數的數量來確定是否調用了 conductor。

構造函數重載的例子

在此示例中,我們正在尋找創建類StudentData的兩個對象 一個對象使用默認構造函數,而另一個對象使用參數化構造函數。 兩個構造函數都有單獨的初始化代碼。 可以使用 different-2 初始化代碼為 different-2 目的創建任何數字的構造函數。

學生數據.java

StudentData

{

私人int stuID;

私有字符串stuName;

私有結構

學生資料()

{

//默認構造函數

學號 = 100 ;

stuName = “新生” ;

學齡 = 18 ;

}

StudentData ( int num1, String str, int num2)

{

//參數化構造函數

stuID = num1;

stuName = 海峽;

stuAge = num2;

}

//getter 和 setter 方法

公共int getStuID() {

返回學號;

}

public void setStuID( int stuID) {

這個.stuID = stuID;

}

公共字符串getStuName() {

返回學名;

}

public void setStuName( String stuName) {

這個.stuName = stuName;

}

公共int getStuAge() {

歸還學籍;

}

public void setStuAge( int stuAge) {

這個.stuAge = stuAge;

}

public static void main(字符串args[])

{

//此對象創建將調用默認構造函數

StudentData myobj = new StudentData ();

系統 out .println( “學生姓名是:” +myobj.getStuName());

系統 out .println( “學生年齡是:” +myobj.getStuAge());

系統 out .println( “學號是:” +myobj.getStuID());

/*這個對象創建將調用參數化

* 構造函數 StudentData(int, String, int)*/

StudentData myobj2 = new StudentData ( 555 , “Chaitanya” , 25 );

系統 out .println( “學生姓名是:” +myobj2.getStuName());

系統 out .println( “學生年齡是:” +myobj2.getStuAge());

系統 out .println( “學號是:” +myobj2.getStuID());

}

}

輸出:

學生姓名學生

學生年齡 18 _

100

學生姓名 Chaitanya

學生年齡 25 _

學生 555

參考: https ://beginnersbook.com/2013/05/constructor-overloading/

從世界一流大學在線學習軟件開發課程。 獲得執行 PG 課程、高級證書課程或碩士課程,以快速推進您的職業生涯。

理解this()在構造函數重載中的作用

公共OverloadingExample2

{

私有int rollNum;

重載示例2 ()

{

滾動數 = 100 ;

}

重載示例 2 ( int rnum)

{

這個();

/*this() 用於調用默認

* 參數化構造函數中的構造函數。

* 它應該總是第一個語句

* 在構造函數體內。

*/

rollNum = rollNum + rnum;

}

public int getRollNum() {

返回rollNum;

}

public void setRollNum( int rollNum) {

這個.rollNum = rollNum;

}

public static void main(字符串args[])

{

OverloadingExample2 obj = new OverloadingExample2 ( 12 );

系統 輸出.println(obj.getRollNum());

}

}

輸出

112

參考: https ://beginnersbook.com/2013/05/constructor-overloading/
upGrad 為您舉辦的獨家軟件開發網絡研討會 –
upGrad 為您舉辦的獨家軟件開發網絡研討會 –

SAAS 業務——有何不同?

在上面提到的程序中,參數化構造函數在創建對象的過程中被調用。 默認構造函數被調用,因為 this () 被放置在參數化構造函數中。 變量rollNum被初始化。

另一個例子:

當你沒有實現任何構造函數時,java編譯器會在編譯時插入一個默認的構造函數到代碼中。 但是,當您實現任何構造函數時,編譯器不會這樣做。 請參閱此處的示例以更好地理解這一點:

公開Demo

{

私有int rollNum;

//我們沒有在這裡定義一個無參數的構造函數

演示整數

{

rollNum = rollNum + rnum;

}

//Getter 和 Setter 方法

public static void main(字符串args[])

{

//此語句將調用無參數構造函數

Demo obj = new Demo ();

}

}

輸出:

線程“main” java.lang中的異常錯誤未解決的編譯

問題:構造函數Demo ( )未定義

軟件工程熱門課程和文章

熱門節目
軟件開發執行 PG 課程 - IIIT B 區塊鏈證書課程 - PURDUE 網絡安全證書計劃 - 普杜 計算機科學碩士 - IIIT B
其他熱門文章
2021-22 年美國雲工程師薪資 AWS 解決方案架構師在美國的薪水 美國的後端開發人員薪水 美國的前端開發人員薪水
Web開發人員在美國的薪水 2022 年 Scrum Master 面試問題 如何在 2022 年開始網絡安全職業? 工程專業學生在美國的職業選擇

解釋構造函數重載的使用

通過構造重載,可以用不同的方式使一個對象創建一個特定的類。 因此,根據程序員的要求,這個概念被用於各種 Java 程序中。 在 Java 中使用構造函數重載時,可以使用不同的數據類型初始化對象。

例如,考慮有一個具有三個類實例變量的對象。 您必須為第二個實例變量分配特定值,為其他變量分配默認值。 通過根據組成類中的不同簽名聲明多個構造函數來實現這一點。

Java中構造函數重載的優點

下面提到的是在編寫 Java 程序時使用構造函數重載的主要優點:

  • 您可以使用構造函數重載以各種方式初始化類實例。
  • 通過構造函數重載,您可以實現靜態多態性。
  • 每個重載的構造函數為特定目的執行不同的任務。
  • Java 中的構造函數重載簡化了在具有唯一特定簽名的單個類中定義多個構造函數的過程。

結論

本文討論Java 中的構造函數重載程序及其好處。 當存在重載的構造函數時,一個類的構造函數不止一個,具有不同的簽名。 為了編譯,每個構造函數必須有不同的參數列表。 參數列表將包含參數的類型和順序。 在一個類中不可能有兩個具有相同參數列表的構造函數。

upGrad 面向軟件開發人員和技術專業人員的全棧開發證書計劃

無論您是軟件開發行業的新手還是希望提陞技能,都必須通過相關課程學習新的技能和技術。 全棧開發就是這樣一門課程。

upGrad 感興趣的候選人提供軟件開發執行計劃,專門為 IT 專業人員、軟件開發人員、技術支持專業人員、分析師和希望進入軟件開發領域的應屆畢業生設計。

通過本課程,您將精通 JavaScript 並學習微服務和 MERN 堆棧。 除了學習近 10 種以上的編程語言和工具,您還將學習在 Facebook、沃爾瑪、Netflix 和 LinkedIn 上廣泛使用的各種工具。 該計劃在 Cloud Labs 上提供身臨其境的學習體驗。

參加此證書課程的學生將有機會在 Capstone 項目中設計、開發、測試和部署 Web 應用程序。 學習者可以與領先的行業導師進行一對一的職業指導課程,並享受這些好處。 完成課程後,您可以擔任全棧開發人員、UI 開發人員、前端和後端開發人員。

立即申請報名參加課程!

Java中的構造函數有什麼用?

Java 中的構造函數用於初始化對象和創建類的對象。 您還可以為對象特徵和屬性設置初始值。 構造函數就像一個代碼塊,類似於一個方法或一個過程。

靜態類是否會發生構造函數重載?

有趣的是,靜態導體不能超載或繼承。 自動調用靜態導體。 在程序中執行靜態構造函數時,用戶無法控制。

構造函數重載和方法重載之間有區別嗎?

方法用於執行某些類功能,而構造函數用於初始化對象。 當你創建一個對象時,構造函數被隱式調用。 但是,方法必須由用戶顯式調用。