前面已經學習了編寫簡單的構造器, 能夠用於初始化對象。可是, 因爲對象構造非 常重要, 因此 Java 提供了多種編寫構造器的機制 。下面將詳細地介紹這些機制 。java
經過本次課程學習咱們將瞭解Java面向對象編程又一重要特性,方法重載。程序員
5分鐘編程
定義:若是一個類中,有多個相同的方法名,不一樣的參數,就是重載。執行哪一個方法取決於傳遞了什麼樣的參數,若是匹配不到對應的參數就會報錯。函數
Java能夠重載任何方法,不單單是構造方法。例如String類有4個indexOf方法:學習
indexOf(int)this
indexOf(int, int)3d
indexOf(String)對象
indexOf(String, int)blog
注意:若是編寫一個類時沒有編寫構造器,那麼系統會提供一個無參構造器,這個構造器將全部的實例域設置爲默認值。若是寫了多個構造函數,卻沒有無參數構造器會被視爲不合法。編譯
因爲上例中沒有無參構造器,因此沒法經過編譯:
咱們定義一個Demo4類,4個say()方法。
在Demo5中實例化,而且調用say()方法。
輸出結果:
規範: 爲了咱們的程序可讀,當構造方法的參數與類內的參數重名時,容易引發錯誤,因此一般在構造方法的參數名前加a。例如:
這樣很清晰:每個程序員一眼就可以看懂參數的含義 。
還有一種方法是經過this關鍵字,進行賦值。