1. 程式人生 > >構造器的作用和例子

構造器的作用和例子

構造器的作用和例子

構造器的特點:1.方法名和類名相等

                    2.沒有返回值,並且不能用void(如果用void來宣告其返回值型別,那麼java會把這個構造器當做方法來處理——那它不再是構造器)

                    3.構造器中的引數列表中的引數可有可無


說簡單點構造器的作用就是建立物件。


上面聲明瞭三個帶引數的構造器,他們之間的關係為過載,那我還可以再建立一個無引數的構造器嗎?看下圖:


eclipse輸出錯誤,提示我們這個無引數的構造器沒有定義

然後我把三個帶引數的構造器給註釋掉(忽略我的快捷註釋...)


然後再執行你會發現又可以了驚訝


這可以說明一個問題:如果類中沒有帶引數的構造器,那我們可以使用一個隱藏的預設構造器來建立物件,如果類中有帶引數的構造器,那預設的構造器就會被覆蓋,所以才會出現我們剛才這樣的問題。

問題又來了:那我非要使用這個無引數的構造器怎麼辦?

其實我們可以顯式的定義預設構造器,那預設的構造器就能夠使用了,如下圖:


這樣就能解決上面那個問題了。

有童鞋就發現我剛才定義的三個構造器中的是有重複程式碼的,如:this.name=name,這行程式碼分別在三個構造器中出現了一次,如下圖:


在此也補充上面一條部落格this的用法


我們可以這樣改進:


this(name,age): 表明呼叫該類中另外一個帶兩個引數的構造器

注意:this在呼叫另外一個過載的構造器時,一定得作為構造器執行體的第一條語句!!!

程式如果大佬有建議的話請指出,有問題歡迎在評論區提出,我會為你解疑答惑。