HOWTO · Java

Java 空建構函式

本教程演示什麼是 Java 中的空建構函式。

本頁內容

當我們需要通過我們的框架反射建立一個新例項時,需要一個空的建構函式。如果我們不為該類建立任何其他帶有引數的建構函式,我們就不需要建立一個空的建構函式,因為已經存在一個預設值。

本教程演示了 Java 中的空建構函式以及如何使用它。

Java 中的空建構函式

在建立建構函式時,我們必須保證建構函式與類同名,並且不返回任何值;空建構函式是不需要任何引數的建構函式,預設建構函式也可以是空建構函式。

一個空的建構函式為我們提供了一個物件的例項。我們可能需要使用 setter 為其設定必要的屬性。

當我們想要確保建立的任何例項始終有效並且變數已初始化時,可以使用空建構函式。我們可以使用空建構函式來定義預設值。

讓我們看一個 Java 程式碼中的示例。

package delftstack;

class Delftstack {
  String employee_name;
  int id;

  public Delftstack() {
    // Empty Constructor
  }

  public Delftstack(String employee_name, int id) {
    this.employee_name = employee_name;
    this.id = id;
  }

  public void print() {
    System.out.println(toString());
  }
}

public class Main {
  public static void main(String[] args) {
    Delftstack Demo = new Delftstack();
    System.out.println(Demo.employee_name);
    System.out.println(Demo.id);
  }
}

輸出將是:

null
0

上面的程式碼顯示了兩個沒有引數和資料的 Delftstack() 建構函式,這就是空建構函式)。

這些建構函式主要用作預設建構函式,我們可以在其中設定預設資料,以便在沒有傳遞引數時使用預設資料。

讓我們看一個預設建構函式的示例。

package delftstack;

class Delftstack {
  String employee_name;
  int id;

  public Delftstack() {
    employee_name = "John";
    id = 10;
  }

  public Delftstack(String employee_name, int id) {
    this.employee_name = employee_name;
    this.id = id;
  }
}

public class Main {
  public static void main(String[] args) {
    Delftstack Demo = new Delftstack();
    System.out.println(Demo.employee_name);
    System.out.println(Demo.id);
  }
}

上面的程式碼將空建構函式轉換為預設建構函式。

見輸出:

John
10

在 Java 中,編譯器的預設建構函式大多是在沒有定義空建構函式時插入的。