首頁 >Java >java教程 >在Java中,預設建構函式和帶參數的建構函式有什麼差別?

在Java中,預設建構函式和帶參數的建構函式有什麼差別?

WBOY
WBOY轉載
2023-09-22 12:37:02810瀏覽

在Java中,預設建構函式和帶參數的建構函式有什麼差別?

預設建構子

  • 預設建構子是一個0參數建構子,其中包含對超類別建構函數的無參數呼叫.
  • 為新建立的物件指派預設值是預設建構子的主要職責。
  • 只有當程式沒有寫任何建構子時,編譯器才會在程式碼中寫入預設建構子。
  • 預設建構子的存取修飾符始終與類別修飾符相同,但此規則僅適用於“public”“default”

#編譯器何時新增預設建構函式

  • 編譯器僅在程式設計師新增預設建構函式時才在程式碼中加入預設建構函式在程式碼中不編寫建構函式。
  • 如果程式設計師在程式碼中編寫任何建構函數,則編譯器不會新增任何建構函數。
  • 每個預設建構函數都是 0 參數建構函數,但每個 0 參數建構函數都不是預設建構子。

參數化建構子

  • 參數化建構子是具有特定的建構子要傳遞的參數數量。
  • 參數化建構函式的目的是將使用者想要的特定值指派給不同物件的實例變數。
  • 參數化建構子由程式設計師明確編寫。
  • 預設建構子的存取修飾符始終與類別修飾符相同,但此規則僅適用於“public”“預設”修飾符。

範例

即時示範

public class Student {
   int roll_no;
   String stu_name;
   Student(int i, String n) { // Parameterized constructor
      roll_no = i;
      stu_name = n;
   }
   void display() {
      System.out.println(roll_no+" "+stu_name);
   }
   public static void main(String args[]) {
      Student s1 = new Student(1,"Adithya");
      Student s2 = new Student(2,"Jai");
      s1.display();
      s2.display();
   }
}

在上面的程式中,程式設計師定義了一個帶有 2 個參數的參數化建構子。現在編譯器沒有在程式碼中加入預設建構函數,程式設計師也沒有寫任何 0 參數建構函數。

輸出

1 Adithya
2 Jai
##

以上是在Java中,預設建構函式和帶參數的建構函式有什麼差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除