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