一、建構函式的一項關鍵特徵是它會在物件能夠被賦值給引用之前就執行。
而建構函式和方法的不同在於建構函式沒有返回型別,且方法名一定與類名相同。
package tydu;
class duck
}public
class gouzao
}
輸出:
ga ga ga
二、使用建構函式來初始化duck的狀態。
最好的方法是把初始化的程式**放在建構函式中,然後把建構函式設定成需要引數的。
**如下:
package tydu;
class duck
}public
class gouzao
}
過載建構函式就是代表你又乙個以上的建構函式並且引數都不相同。
如果兩個構造引數型別都是一樣的則無法通過編譯,如:
class duck
public
duck(int n)
}
編譯器看得是引數的型別和順序,而不是引數的名字,如:
package tydu;
class duck
public
duck(boolean setsize)
}public
class gouzao
}
我們也可以做出相同型別但是順序不同的引數。如:
package tydu;
class duck
public
duck(boolean n,int setsize)
}public
class gouzao
}
package dds;
abstract
class
vnimal
public vnimal(string setname)
} class
fogextends
vnimal
}public
class
aannimal
}
關於建構函式
class foo foo char x,int y 上面例子中,foo x,0 語句並不呼叫當前物件的foo char x,int y 函式,而是產生乙個臨時物件並對其初始化,然後在語句結束時 分號處 銷毀臨時物件。因此當前物件並未得到初始化,這恐怕出乎很多人的意料。解決這個問題,常見的辦法是合併...
關於建構函式
1 每個類必須有乙個建構函式,否則沒法建立物件 2 若programer沒有提供任何建構函式,則c 提供乙個預設的建構函式,該預設建構函式是無參建構函式,它僅負責建立物件,不做任何初始化的工作 3 只要programer定義了乙個建構函式 不管是無參還是有參構造 c 就不再提供預設的預設建構函式。即...
關於建構函式
之前學習c 很多東西都草草了解,並沒有吃透,建構函式就是乙個例子。不帶引數的建構函式稱為 預設建構函式 無論何時,只要使用 new 運算子例項化物件,並且不為 new 提供任何引數,就會呼叫預設建構函式。除非類是 static 的,否則 c 編譯器將為無建構函式的 類提供乙個公共的預設建構函式,以便...