一、什麼是構造器
構造器是Java中一種特殊的方法,用來初始化對象的屬性。
構造器的特點是和類名相同,沒有返回值類型,可以有多個重載形式。
public class Person {
private String name;
private int age;
public Person() {
System.out.println("無參構造器被調用了");
}
public Person(String name) {
this.name = name;
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
二、構造器的作用
1. 對象初始化
構造器主要用來初始化對象的屬性,即為對象的屬性賦初值。
public class Person {
private String name;
private int age;
public Person() {
// 無參構造器
name = "default";
age = 0;
}
public Person(String name) {
// 帶一個參數的構造器
this.name = name;
age = 0;
}
public Person(String name, int age) {
// 帶兩個參數的構造器
this.name = name;
this.age = age;
}
}
2. 為屬性賦初值
構造器在對象創建時就會執行,可為屬性賦初值。
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
System.out.println("姓名:" + this.name + "\n年齡:" + this.age);
}
}
3. 多個構造器
同一個類可以有多個構造器,用來滿足不同的需求。
public class Person {
private String name;
private int age;
private double weight;
public Person(String name) {
this.name = name;
age = 18;
weight = 60.0;
}
public Person(String name, int age) {
this.name = name;
this.age = age;
weight = 60.0;
}
public Person(String name, int age, double weight) {
this.name = name;
this.age = age;
this.weight = weight;
}
}
三、構造器的注意事項
1.構造器的名字必須和類名一致
構造器不像普通方法那樣有名字,構造器的名字必須和類名一致。
2.構造器沒有返回值類型
構造器沒有返回值類型,因為它的返回值就是正在構造的對象本身。
3.使用this()和super()
在構造器中使用this()調用當前類的另一個構造器,使用super()調用父類的構造器。
public class Person {
private String name;
private int age;
public Person() {
this("default"); // 調用帶一個參數的構造器
}
public Person(String name) {
this(name, 0); // 調用帶兩個參數的構造器
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
4.構造器的重載
同一個類可以有多個構造器,構造器之間可以重載。
public class Person {
private String name;
private int age;
public Person() {
this("default");
}
public Person(String name) {
this(name, 0);
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public Person(int age) {
this("default", age);
}
}
四、總結
構造器是Java中一種特殊的方法,用來初始化對象的屬性。
構造器主要用來初始化對象的屬性,即為對象的屬性賦初值。
同一個類可以有多個構造器,構造器之間可以重載。
在構造器中使用this()調用當前類的另一個構造器,使用super()調用父類的構造器。
原創文章,作者:TDNJI,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/371603.html