10-面向對象-構造方法
構造方法也叫做構造器、構造函數。
作用:在創建對象的時候給成員變量進行初始化的。
? 一、構造方法的特點
特點 | 說明 |
---|---|
與類同名 | 構造方法的名稱必須與類名相同 |
沒有返回類型 | 構造方法沒有返回值,甚至不能寫 void |
自動調用 | 使用 new 創建對象時,會自動調用構造方法 |
可以重載 | 可以定義多個構造方法(構造方法重載) |
? 二、構造方法的分類
1. 無參構造方法(默認構造)
如果你不寫,Java 會自動提供一個無參構造方法。
public class Person {String name;int age;// 無參構造public Person() {System.out.println("調用了無參構造方法");}
}
調用:
Person p = new Person();
2. 有參構造方法
可以在創建對象時直接傳入參數來初始化成員變量。
public class Person {String name;int age;// 有參構造public Person(String name, int age) {this.name = name; // 用 this 解決成員變量與參數重名this.age = age;}void printInfo() {System.out.println("姓名: " + name + ", 年齡: " + age);}
}
調用:
Person p = new Person("張三", 20);
p.printInfo();
? 三、構造方法重載
你可以定義多個構造方法,只要參數列表不同:
public class Book {String title;double price;// 無參構造public Book() {this.title = "默認書名";this.price = 0.0;}// 一個參數的構造public Book(String title) {this.title = title;this.price = 0.0;}// 兩個參數的構造public Book(String title, double price) {this.title = title;this.price = price;}void show() {System.out.println(title + " - " + price + "元");}
}
調用:
Book b1 = new Book();
Book b2 = new Book("Java入門");
Book b3 = new Book("深入Java", 88.8);b1.show();
b2.show();
b3.show();
? 四、使用 this(...)
調用其他構造方法(構造器鏈)
public class Person {String name;int age;// 構造器鏈public Person() {this("默認名", 0); // 調用有參構造}public Person(String name, int age) {this.name = name;this.age = age;}
}
注意:
this(...)
必須寫在構造方法的第一行。