《Head First Java》20200927讀書筆記
P245-
《Head First Java》20200927讀書筆記
Duck的簡易飼養方法
一定要有不需引數的建構函式。
如果Duck的建構函式需要一項引數會怎樣?
上一頁的Duck只有一個建構函式,且它需要一個int型的size引數。
想象一個你可以讓使用者在建立Duck時有兩個選項:一個可以指定Duck的大小(通過建構函式的引數),另外一個使用預設值而無需指定大小。
你無法只依靠單一的建構函式就能夠很清楚地達到這個目的。
要記得,如果某個方法或構造有一項引數,你就必須在呼叫該方法或建構函式的時候傳入適當的引數。
你沒有辦法作出一種沒給引數時,就使用預設值的方法,因為在這個情況下,沒有給引數就無法通過編譯程式。
public class Duck{
int size;
public Duck(int newSize){
if(newSize == 0){//如果引數值為0就使用預設的大小
size = 27;
}else{
size = newSize;
}
}
}
你需要兩種方法來建立出新的Duck:
public class Duck2{
int size;
public Duck2(){
//指定預設值
size = 27;
}
public Duck2(int duckSize){
//使用引數設定
size = duckSize;
}
}
知道大小時:
Duck2 d = new Duck2(15);
不知道大小時:
Duck2 d2 = new Duck2();
因此這會需要兩個建構函式來分辨兩種選項。
一個需要引數,另外一個不需要引數。
如果一個類有一個以上的建構函式,這代表它們也是過載的。
過載與預設的建構函式
編譯器一定會幫你寫出沒有引數的建構函式嗎?
No!
如果你已經寫了一個有引數的建構函式,並且你需要一個沒有引數的建構函式,則你必須自己動手寫!
如果類有一個以上的建構函式,則引數一定要不一樣。
這就包括了引數的順序與型別,只要是不一樣就可以。
過載建構函式的意思代表你有一個以上的建構函式且引數都不相同
要點
- 例項變數是儲存在所屬的物件,位於堆上。
- 如果例項變數是個對物件的引用,則引用與物件都是在堆上。
- 建構函式是個會在新建物件的時候執行程式程式碼。
- 構造必須與類同名且沒有返回型別。
- 你可以用建構函式來初始被建立物件的狀態。
- 如果你沒有寫建構函式,編譯器會幫你安排一個。
- 預設的建構函式是沒有引數的。
- 如果你寫了建構函式,則編譯器就不會呼叫。
相關文章
- head first java讀書筆記Java筆記
- Head First jQuery讀書筆記jQuery筆記
- Head First設計模式讀書筆記設計模式筆記
- Head First Javascript 程式設計讀書筆記(一)JavaScript程式設計筆記
- Head First Javascript 程式設計讀書筆記(二)JavaScript程式設計筆記
- Head First Javascript 程式設計讀書筆記(三)JavaScript程式設計筆記
- Head First Javascript 程式設計讀書筆記(四)JavaScript程式設計筆記
- 《Head First Java》20201017讀書筆記Java筆記
- 《Head First HTML 與 CSS》讀書筆記之CSS篇HTMLCSS筆記
- 《Head First Java》20201009讀書筆記Java筆記
- 《Head First C 中文版》審讀筆記(五)筆記
- 《Head First C 中文版》審讀筆記(三)筆記
- 《Head First C 中文版》審讀筆記(四)筆記
- 《Head First C 中文版》審讀筆記(二)筆記
- 《Head First C 中文版》審讀筆記(一)筆記
- Head First Java學習筆記(7):繼承與多型Java筆記繼承多型
- Effective Java 讀書筆記Java筆記
- 《Head First Android》讀後感,電子書PDF下載Android
- 深度解讀Head First:公式篇公式
- java讀書筆記---垃圾回收Java筆記
- Effective Java 讀書筆記(2)Java筆記
- 讀書筆記-----Java中的引用筆記Java
- Effective Java讀書筆記(目錄)Java筆記
- Head First 設計模式筆記 3.裝飾者模式設計模式筆記
- Head First HTML 與 CSS(第二版)學習筆記HTMLCSS筆記
- 讀書筆記...筆記
- 讀書筆記筆記
- 《讀書與做人》讀書筆記筆記
- 《Java程式設計思想》讀書筆記一Java程式設計筆記
- 《Effective Java 第二版》讀書筆記Java筆記
- 讀書筆記-Java程式設計思想-03筆記Java程式設計
- Java遊戲程式設計讀書筆記(轉)Java遊戲程式設計筆記
- Cucumber讀書筆記筆記
- 散文讀書筆記筆記
- HTTP 讀書筆記HTTP筆記
- CoreJava讀書筆記-------Java筆記
- flask讀書筆記Flask筆記
- Vue讀書筆記Vue筆記