14.構造器

構造器

什麼是構造器?

構造器通常也叫構造方法、構造函數,構造器在new對象的時候會被調用

使用new關鍵字,本質是在調用構造器

語法:

public 類名 (參數列表,可以沒有參數) {
    // 不能有return,返回值為空
}
  • 特點一:必須和類的名字相同
  • 特點二:一定,必須沒有返回值,但也不能用void。

例:

  1. 創建一個空的Person
public class Person { }	// 裡面什麼都不定義
  1. 發現能實例化出來這個Person
public class Application {
    public static void main(String[] args) {
        Person person = new Person();
    }
}
  1. 說明 Person類里存在一個空的構造器(無參構造器)
public class Person {
    public Person() {
        // 空的構造器
    }
}
  1. 結論:一個類裡面即使什麼都不寫,也會存在一個方法(無參構造器)

顯示的定義一個無參構造器

public class Person {
    public Person() {
        // 無參構造器
    }
}
  • 無參構造器能實例化初始值

    public class Person {
    
        String name;
        
        public Person() {
            // 實例化name的初始值
            this.name = "小明";
        }
    }
    
    public class Application {
        public static void main(String[] args) {
    		// 實例化一個類
            Person person = new Person();
    		// 輸出person類的name屬性
            System.out.printf("name的值為:" + person.name);
    
        }
    }
    

    結果:

    name的值為:小明
    

有參構造器

  • 一旦定義有參構造器就一定得顯示的定義一個無參構造器
public class Person {    String name;    	// 無參構造    public Person() { }        // 有參構造    public Person(String name) {        this.name = name;    }}
  • 在使用Person這個類創建對象時會出現方法重載

    public class Application {    public static void main(String[] args) {		// 實例化對象的時候傳入值        Person person = new Person("小紅");        System.out.printf("值為:" + person.name);    }}
    

    結果:

    name的值為:小紅
    

    因為使用這個類時有值傳入,所以程式就往有參構造那走了