- java的構(gòu)造方法
new +構(gòu)造方法 去創(chuàng)建一個(gè)對(duì)象
跟普通方法的區(qū)別:
1.構(gòu)造方法沒(méi)有返回值類型的聲明
2.每一個(gè)類至少有一個(gè)構(gòu)造方法
如果沒(méi)有生命JVM會(huì)默認(rèn)給一個(gè)無(wú)參數(shù)的構(gòu)造方法眉睹,一旦聲明了構(gòu)造方法就不在默認(rèn)給你仔夺。
3.構(gòu)造方法名稱必和須跟類名一致
4.構(gòu)造方法的調(diào)用
public Person()
{
System.out.printf("構(gòu)造方法");
}
注意:如果寫(xiě)成了public void Person() 就成了普通的方法了
普通方法:對(duì)象存在骇钦,通過(guò)變量名.方法名()調(diào)用
構(gòu)造方法:new 構(gòu)造方法名()調(diào)用,一旦new構(gòu)造方法()就創(chuàng)建一個(gè)新的對(duì)象
構(gòu)造方法只存在對(duì)象創(chuàng)建的時(shí)候調(diào)用
作用:語(yǔ)法規(guī)定通過(guò)new+當(dāng)前類的構(gòu)造方法去創(chuàng)建一個(gè)對(duì)應(yīng)的類型的對(duì)象团甲。
實(shí)際中對(duì)象是否創(chuàng)建時(shí)由new決定,構(gòu)造方法是在對(duì)象創(chuàng)建成功之后執(zhí)行的寓盗,用于做初始化設(shè)置矩乐,并且構(gòu)造方法只在當(dāng)前對(duì)象創(chuàng)建成功時(shí)執(zhí)行一次刁品,以后就不會(huì)執(zhí)行泣特。
注意:一般情況下我們會(huì)聲明參數(shù)的構(gòu)造方法,在對(duì)象創(chuàng)建的對(duì)成員變量進(jìn)行賦值(復(fù)用性)
- 方法重載 overload
java中允許在一個(gè)類中聲明多個(gè)名稱一樣挑随,但是參數(shù)不同的多個(gè)方法
作用:在創(chuàng)建對(duì)象的時(shí)候初始化的時(shí)候提供多種需求状您。
調(diào)用:
根據(jù)實(shí)際傳入的參數(shù)來(lái)識(shí)別。
參數(shù)不同:
1.參數(shù)的個(gè)數(shù)不同。
2.參數(shù)的類型不同膏孟。
3.參數(shù)類型的順序不同眯分,也算不同(前后參數(shù)類型需要不同)
注意:在方法重載中,當(dāng)嚴(yán)格匹配匹配不到方法時(shí)候柒桑,就會(huì)通過(guò)就近匹配方法弊决。
就近匹配:按照參數(shù)的默認(rèn)轉(zhuǎn)換的原則
注意:一旦就近匹配到多個(gè)方法的時(shí)候會(huì)出現(xiàn)語(yǔ)法的錯(cuò)誤,就需要按照嚴(yán)格匹配魁淳。
注意:重載對(duì)個(gè)構(gòu)造方法一般是為了在創(chuàng)建對(duì)象的時(shí)候飘诗,可以提供多種初始化設(shè)置供使用者選擇。
-
this
1.隱含的局部變量
在方法中指向調(diào)用該方法的對(duì)象()
使用:當(dāng)成員變量與局部變量同名的時(shí)候界逛,通過(guò)this說(shuō)明哪一個(gè)是成員變量昆稿。(this指向的是成員變量)
F11進(jìn)入調(diào)試狀態(tài)
F5進(jìn)入構(gòu)造方法
不加this 成員變量和局部變量同名,局部變量的優(yōu)先級(jí)會(huì)比較高
2.作為當(dāng)前類的構(gòu)造方法名存在
作用:在構(gòu)造方法第一句話去調(diào)用其他重載的構(gòu)造方法(ps:放在第一句話是為了只聲明一個(gè)對(duì)象息拜。)
- 靜態(tài)修飾符 static
作用:修飾成員變量溉潭、方法
修飾成員變量,該成員變量就是靜態(tài)的成員變量少欺,不在依賴與對(duì)象喳瓣,是這個(gè)類所有對(duì)象共有的。
注意:靜態(tài)的成員變量在類加載的時(shí)候會(huì)被創(chuàng)建(對(duì)象生成之前就創(chuàng)建了)狈茉,并且只會(huì)被創(chuàng)建一次夫椭。
使用:類名.靜態(tài)成員變量名(因?yàn)椴徽撌悄囊粋€(gè)對(duì)象改變靜態(tài)變量都會(huì)改變,所以可以直接類名來(lái)調(diào)用)
2.修飾方法,該方法就變成靜態(tài)方法氯庆,不在依賴于某個(gè)對(duì)象(方法里面沒(méi)有使用到任何一個(gè)成員變量)蹭秋。
使用:類名.靜態(tài)的方法名(參數(shù));
與非靜態(tài)方法的區(qū)別:
非靜態(tài)的方法調(diào)用的前提:對(duì)象存在堤撵。
非靜態(tài)的方法什么都可以調(diào)用
靜態(tài)的方法不可調(diào)用非靜態(tài)的成員變量以及方法(成員變量不知道是哪一個(gè)變量)