一、構造器的定義
構造器也叫構造方法,是用於例項化Java物件的一個特殊方法,是一個建立物件時被自動呼叫的特殊方法.方法名必須和類名保持一致,並且無返回值型別.(作用)用於物件的初始化。
public 類名(){
}
Java透過new關鍵字來呼叫構造器,從而返回該類的例項
二、構造器的宣告格式
[修飾符] 類名(形參列表){
//n條語句
}
若無引數列表,稱為無參構造器(空構造器);
若有引數列表,稱為有參構造器。
三、構造器的特點
- 構造器的方法名必須與類名保持一致;
- 構造器透過new關鍵字進行呼叫;
- 構造器不能定義返回值型別,不能在構造器例使用return關鍵字來返回耨個值;
- 如果一個類中有構造器,那麼系統不會分配預設的空構造器,需要手動新增無參構造器;如果一個類沒有定義構造器,則編譯器會自動定義一個無參構造方法。
四、構造器的過載
構造方法也是方法,與普通方法一樣,構造方法也可以過載。
//編寫一個帶引數的構造器
public Person(String name, int age, String sex) {
this.name = name; //this.name代表Person中的屬性name,= 後面的name代表構造器中的引數name
this.age = age;
this.sex = sex;
}
//方法過載
public Person(String name, int age) {
this.name = name;
this.age = age;
}
五、構造器快捷鍵
Alt + insert —>constructor——>選擇屬性
六、例項
public class Person {
String name;
int age;
String sex;
//定義一個學習方法
public void study(){
System.out.println("Good good study, day day up!");
}
//顯式編寫一個空構造器
public Person() {
System.out.println("Person 空構造器");
}
//編寫一個帶引數的構造器
public Person(String name, int age, String sex) {
this.name = name; //this.name代表Person中的屬性name,= 後面的name代表構造器中的引數name
this.age = age;
this.sex = sex;
}
//方法過載
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public static void main(String[] args) {
Person p1 = new Person("二兩客", 22, "Male");
System.out.println(p1.name + " " + p1.age + " " + p1.sex);
p1.study();
Person p2 = new Person("椰椰", 22);
System.out.println(p2.name + " " + p2.age);
p2.study();
}
}
public class Test02 {
public static void main(String[] args) {
/*
* 建立一個person物件
* new person();
* person();———————>空構造方法
* new 關鍵字對方法進行呼叫,
* 構造器作用:底層自動幫我們建立物件,在建立物件以後進行初始化操作
* 如果一個類沒有顯式編寫構造器,則系統會自動提供一個空構造器,即無參構造器
* 空構造器的作用:建立一個物件,但不進行任何初始化操作
* 呼叫構造器以後,對物件進行初始化操作,將物件的地址返回給person
*/
Person person = new Person("椰椰", 22, "male");
System.out.println(person.name+""+person.age+""+person.sex);
Person person2 = new Person("椰椰",+22);
System.out.println(person2.name+""+person2.age);
}
}