一、基本概念
構造器(Constructor)是一種特殊的方法,用於在創建對象時初始化對象,也就是在調用 new 操作符時自動調用的方法。
構造器的名稱必須與類名完全相同,沒有返回類型,也不能被 static、final、synchronized 或 abstract 修飾,在一個類中可以定義多個構造器。
如果一個類沒有定義任何構造器,則編譯器會提供一個默認的無參構造器。如果一個類定義了至少一個構造器,則編譯器不會提供默認構造器。
二、構造器的作用
構造器的主要作用是初始化一個對象,給對象的成員變量賦初值。如果不提供構造器,Java 編譯器會默認提供一個無參數的構造器,但沒有初始化對象的成員變量。
構造器還可以被用於檢驗傳遞給對象的值或確保對象被正確地創建。
另外,構造器也可以被用於在對象創建時執行任何其他必要的任務。
三、構造器的使用
構造器的使用需要注意以下幾點:
1. 構造器的重載
一個類可以有多個構造器,稱之為構造器的重載。當調用 new 操作符創建對象時,編譯器會根據傳遞的參數選擇最合適的構造器。
例如:
public class Person { private String name; private int age; public Person() { } public Person(String name) { this.name = name; } public Person(String name, int age) { this.name = name; this.age = age; } } Person p1 = new Person(); // 調用無參構造器 Person p2 = new Person("Tom"); // 調用帶有 String 參數的構造器 Person p3 = new Person("Mary", 20); // 調用帶有 String 和 int 參數的構造器
2. 構造器中調用其他構造器
在一個構造器內調用同一類中的另一個構造器,可以使用 this() 方法,必須是該構造器的第一條語句。
public class Person { private String name; private int age; public Person() { this("Tom"); // 調用帶有 String 參數的構造器 } public Person(String name) { this.name = name; } public Person(String name, int age) { this.name = name; this.age = age; } }
3. super 關鍵字調用父類構造器
在子類構造器中,可以使用 super 關鍵字調用父類的構造器。如果沒有使用 super 關鍵字,則默認調用父類的無參構造器。如果使用了 super 關鍵字,則必須是該構造器的第一條語句。
public class Student extends Person { private int grade; public Student() { super(); // 調用父類的無參構造器 } public Student(String name, int age, int grade) { super(name, age); // 調用父類的帶有 String、int 參數的構造器 this.grade = grade; } }
四、總結
Java 構造器是一種特殊的方法,用於在創建對象時初始化對象,也可以被用於檢驗傳遞給對象的值或確保對象被正確地創建。
構造器可以重載,可以在構造器中調用同一類中的其他構造器、調用父類構造器(使用 super 關鍵字)。
編寫良好的構造器可以增強代碼的可讀性和可維護性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/199984.html