更新時間:2020-07-07 16:20:14 來源:動力節(jié)點 瀏覽4674次
Java中構(gòu)造方法是個特殊的方法,初學者如我要想全說透恐怕是不可能的。我就說說我自己的理解吧,拋磚引玉,有遺漏或錯誤的請大家指正!
構(gòu)造方法一般說法是用來對new出來的對象進行初始化的,也是類的方法,不過他比較特殊。為什么用構(gòu)造函數(shù),我舉個例子說下
有沒有發(fā)現(xiàn),我每new個新對象都要給他賦值,麻煩不說,指不定什么時候忘了呢。而且,如果把變量設(shè)成private,我還不能訪問。下面在用構(gòu)造方法走一個:
用構(gòu)造方法就不一樣,我只要在new新對象的時候傳兩參數(shù),它自動就把變量賦值了,也有利于類的封裝,我這里的兩個變量可都是private哦!
它有幾個特征:
1、方法名和類名必須是一樣的;
2、構(gòu)造方法沒有返回值;
3、在new一個新對象時,構(gòu)造函數(shù)自動執(zhí)行;
舉例說明,Dog類中我建了三個方法,在主函數(shù)中new出dog時,沒有調(diào)用任何方法,但是第一個Dog()函數(shù)執(zhí)行了。是不是實例對象時自動執(zhí)行的啊!那么第二個函數(shù)為什么沒有執(zhí)行呢,因為它帶了返回值。系統(tǒng)自動把他歸類到普通方法里去了,要執(zhí)行它必須向普通方法一樣調(diào)用。(這里說下void,很多教材說它指沒有返回值。但void的沒有返回值和構(gòu)造方法的是不一樣的,我一般把void理解為該方法不需要返回值,而構(gòu)造方法是沒有返回值。)
4、一個類可以有多個構(gòu)造方法;
說是多個,主要體現(xiàn)在所傳參數(shù)上,兩個完全一模一樣的是不允許的。
兩個構(gòu)造方法,參數(shù)不一樣,new新對象時,系統(tǒng)會根據(jù)你傳的參數(shù)選擇調(diào)用哪個方法。當然你在new新對象是傳參數(shù)就不能亂傳了,必須和某個構(gòu)造方法中的類型、數(shù)量一致。
5、每個函數(shù)都有一個默認的構(gòu)造方法;
這個就不知道怎么演示了,上兩張截圖,大家對比下:
new對象是出錯了,因為和構(gòu)造方法參數(shù)不一樣嘛!
我把自己寫的構(gòu)造方法刪了,反而通過了。一般認為,你寫了自己的構(gòu)造方法,會覆蓋掉默認的所以第一個通不過,刪掉自己的,系統(tǒng)調(diào)用默認的,第二個通過了!
構(gòu)造方法的優(yōu)先級是很高的,一旦創(chuàng)建對象,就會立刻執(zhí)行。但是昨天補充的那個static代碼塊比它的優(yōu)先級還高,還在它之前執(zhí)行,這里就不演示了。
以上就是動力節(jié)點java培訓機構(gòu)的小編針對“Java構(gòu)造方法有什么用,詳細的使用說明”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。