Java之构造函数
什么是構(gòu)造函數(shù)
建立一個(gè)對(duì)象時(shí),通常最需要立即做的工作是初始化對(duì)象,如對(duì)數(shù)據(jù)成員賦初值
(1)構(gòu)造函數(shù)就是用來在創(chuàng)造對(duì)象時(shí)初始化對(duì)象,為對(duì)象數(shù)據(jù)成員賦初始值
(2)構(gòu)造函數(shù)一般聲明為公有的(public),因?yàn)閯?chuàng)建對(duì)象通常是在類的外部進(jìn)行的。如果構(gòu)造函數(shù)聲明為保護(hù)的(protected)或私有的(private),那就意味在類外部創(chuàng)建對(duì)象(并調(diào)用構(gòu)造函數(shù))是錯(cuò)誤的。換言之,這樣的類是不能由外部實(shí)例化,只能由類內(nèi)部實(shí)例化,這種情況不是通常的做法。
(3)在構(gòu)造函數(shù)的函數(shù)體中不僅可以對(duì)數(shù)據(jù)成員初始化,而且可以包含任意其他功能的語(yǔ)句,例如分配動(dòng)態(tài)內(nèi)存等,但是一般不提倡在構(gòu)造函數(shù)中加入與初始化無關(guān)的內(nèi)容。
(4)每個(gè)構(gòu)造函數(shù)應(yīng)該為每個(gè)數(shù)據(jù)成員提供初始化。否則將使那些數(shù)據(jù)成員處于未定義的狀態(tài)。而使用一個(gè)未定義的成員是錯(cuò)誤的。
(5)帶參數(shù)的構(gòu)造函數(shù)中的形參,是在定義對(duì)象時(shí)由對(duì)應(yīng)的實(shí)參給定的,用這種方法可以方便地實(shí)現(xiàn)對(duì)不同對(duì)象進(jìn)行不同的初始化。需要注意,實(shí)參必須與構(gòu)造函數(shù)的形參的個(gè)數(shù),次序,類型一致。
構(gòu)造函數(shù):
是一個(gè)特殊的函數(shù),與類名相同,無返回值類型
每個(gè)類中都默認(rèn)有一個(gè)無參的構(gòu)造函數(shù)(是隱藏的)
創(chuàng)建對(duì)象時(shí)執(zhí)行構(gòu)造函數(shù)
構(gòu)造函數(shù)的作用:初始化對(duì)象
創(chuàng)建對(duì)象時(shí),給對(duì)象屬性賦值
格式:
public?類名([參數(shù)]){
}
創(chuàng)建對(duì)象格式:版本2
類名?對(duì)象名?=?new?構(gòu)造函數(shù)();
String?name;//問:是屬性還是方法?
public?void?a(){//問:是屬性還是方法
}
總結(jié):
名字后面沒有括號(hào)的百分百是屬性
名字后面有小括號(hào)的百分百是方法
總結(jié)
- 上一篇: NYOJ-备用2350 彩排(位运算)
- 下一篇: java构造函数调用构造函数