構造器會在對象創建的時候對其進行初始化。構造器的名字和類名相同,在句法上和方法非常相似,然而,構造器沒有指明返回的類型。
通常,我們在構造器裏對類裏的定義的實例變量進行賦初始值,或者執行創建對象時需要執行的任何初始化過程。
不管你定義一個構造器或者不定義,所有的類都有構造器。這是因爲如果不定義構造器的話,Java會自動創建一個構造器使所有的實例變量初始化爲0。然而,一旦你手動定義了一個構造器,默認的構造器就不會被調用。
語法
下面代碼是定義一個構造器的基本語法結構:
class ClassName {
ClassName() {
}
}
Java允許定義兩種構造器,分別是:
- 無參構造器
- 帶參構造器
無參構造器
正如名字所體現的那樣,Java中的無參構造器不接受傳入參數,這樣一來,所有創建的對象的實例變量都會被初始化爲固定的值。
例子
Public class MyClass {
Int num;
MyClass() {
num = 100;
}
}
通過下面的代碼可以調用構造器來初始化對象:
public class ConsDemo {
public static void main(String args[]) {
MyClass t1 = new MyClass();
MyClass t2 = new MyClass();
System.out.println(t1.num + " " + t2.num);
}
}
上面的代碼的輸出結果爲:
100 100
帶參構造器
大多數情況下,我們需要在對象初始化時賦上我們想要設置的值,這就需要有一個接收參數的構造器來使對象進行初始化。和方法中傳入參數的寫法一樣,我們只要在構造器名字後面的括號里加上參數聲明。
舉個例子
下面是一個簡單的帶參構造器:
//一個簡單的構造器例子
class MyClass {
int x;
//定義帶參構造器
MyClass(int i ) {
x = i;
}
}
這樣調用構造器來初始化對象:
public class ConsDemo {
public static void main(String args[]) {
MyClass t1 = new MyClass( 10 );
MyClass t2 = new MyClass( 20 );
System.out.println(t1.x + " " + t2.x);
}
}
上面代碼的輸出爲:
10 20
本篇小結
更多交流,歡迎加羣(584017112):