首頁 >Java >java教程 >Java 中預設建構函式和使用者定義建構函式有什麼不同?

Java 中預設建構函式和使用者定義建構函式有什麼不同?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-22 07:13:13828瀏覽

What's the Difference Between Default and User-Defined Constructors in Java?

Java 中的預設建構子

Java 中,如果沒有定義其他建構函數,則會自動產生預設建構子。它是一個無參構造函數,將字段初始化為其預設值。以下程式碼未定義預設建構子:

public Module() {
   this.name = "";
   this.credits = 0;
   this.hours = 0;
}

這是一個帶有參數的使用者定義的建構子。預設建構子如下:

public Module() {}

或者,如果欄位類型是原始型別:

public Module() {
   super();
   this.name = null;
   this.credits = 0;
   this.hours = 0;
}

主要差異

主要差異預設建構子和使用者定義建構子之間的差異是:

  • 預設建構子不需要參數,而使用者定義的建構子可以有參數。
  • 預設建構子會自動將欄位初始化為其預設值(例如,物件為 null,數字基元為 0),而使用者定義的建構函式允許自訂初始化。

預設建構子與否建構子

根本沒有建構子相當於有一個預設建構子。當沒有建構函數時,Java 編譯器會自動產生一個預設的建構函數,沒有參數,也沒有欄位初始化。

注意:

  • 如果定義了任何建構子在類別中,不會產生預設建構子。
  • 預設建構子只能隱式創建,不能明確地。

以上是Java 中預設建構函式和使用者定義建構函式有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn