public class DefaultConstructor { public static void main(String[] args) { Bird nc = new Bird(); // default! } } ///:~
對于下面這一行: new Bird(); 它的作用是新建一個對象,并調用默認構建器——即使尚未明確定義一個象這樣的構建器。若沒有它,就沒有方法可以調用,無法構建我們的對象。然而,假如已經定義了一個構建器(無論是否有自變量),編譯程序都不會幫我們自動合成一個:
class Bush { Bush(int i) {} Bush(double d) {} }
現在,假若使用下述代碼: new Bush(); 編譯程序就會報告自己找不到一個相符的構建器。就好象我們沒有設置任何構建器,編譯程序會說:“你看來似乎需要一個構建器,所以讓我們給你制造一個吧?!钡偃缥覀儗懥艘粋€構建器,編譯程序就會說:“啊,你已寫了一個構建器,所以我知道你想干什么;假如你不放置一個默認的,是由于你打算省略它。”