能夠假想爲編寫的每個類都定義一個initialize()方法。該方法的名稱提醒你在使用其對象以前,應先調用initialize()方法。然而這同時意味着用戶必須記得本身去調用此方法。在java中,經過提供構造器,類的設計者可確保每一個對象都會獲得初始化。建立對象時,若是其類具備構造器,java就會在用戶有能力操做對象以前自動給調用相應的構造器,從而保證了初始化的進行。java
如何命名這個方法。有兩個問題:第一,所取的任何名字均可能與類的成員名稱相沖突;第二,掉用構造器是編譯器的責任,因此必須讓編譯器知道應該調用哪一個方法。spa
如下是帶有構造器的簡單類:設計
1 //Demostration of a simple constructor 2 3 class Rock{ 4 Rock(){ 5 System.out.print("Rock"); 6 } 7 } 8 9 public class SimpleConstructor { 10 public static void main(String[] args) { 11 for (int i = 0; i < 10; i++) { 12 new Rock(); 13 } 14 } 15 }/*Output: 16 Rock Rock Rock Rock Rock Rock Rock Rock Rock Rock 17 */
如今,建立對象時:code
new Rock();對象
將會爲對象分配空間,並調用相應的構造器。這就確保了在你能操做對象以前,它已經被恰當的初始化了。blog
注意:構造器的名稱必須與類名徹底相同。編譯器