Java是一門面向對象的編程語言,其中構造函數是一個非常重要的概念。Java中的構造函數分為空參構造和有參構造兩種。
空參構造函數即為不帶任何參數的構造函數。在Java中,如果我們不為一個類自定義構造函數,系統會默認為它創建一個空參構造函數。這個構造函數可以實例化這個類的對象,但不能對這個對象進行屬性的初始化。例如:
public class Person{ String name; int age; public Person(){ System.out.println("我是空參構造函數!"); } }
在上述例子中,我們定義了一個Person類,其中有一個空參構造函數。但是這個構造函數并沒有為name和age兩個屬性進行初始化。此時如果我們實例化這個Person對象:
Person p = new Person();
就會出現P.name為null,P.age為0的情況。
有參構造函數是指在創建類的實例時,給這個類的屬性進行初始化的構造函數。有參構造函數一般都是一個或多個參數,根據參數的個數不同,可以有多個不同的有參構造函數。例如:
public class Person{ String name; int age; public Person(String name, int age){ this.name = name; this.age = age; } public Person(String name){ this(name, 0); } }
在上述例子中,我們定義了兩個不同的有參構造函數。第一個構造函數需要傳入name和age兩個參數,第二個構造函數只需要傳入name一個參數。在第二個構造函數中,通過this調用了第一個構造函數,實現了方法的復用。
在實例化這個Person對象時:
Person p1 = new Person("小明", 18); Person p2 = new Person("小紅");
p1對象的name屬性值為“小明”,age屬性值為18,p2對象的name屬性值為“小紅”,age屬性值為默認值0。
空參構造和有參構造函數的運用是非常廣泛的,在實際的開發中,我們需要根據具體的應用場景選擇使用哪種構造函數,來對類的屬性進行初始化。