一、基本概念
構造器(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-hant/n/199984.html
微信掃一掃
支付寶掃一掃