All About JAVA 關於JAVA對象的建立以及構造方法(1)

來源:互聯網
上載者:User

對於JAVA對象的建立,我們使用這樣的語句:Object myObj = new Object(); 它實際分為三個步驟:

            1. Object myObj  — 分配儲存空間並建立一個引用變數。
            2. new Object()  — 建立一個Object對象。
            3. =  — 將建立的對象引用賦值給 myObj 這個引用變數。

      在上邊的第二個步驟,當我們使用了 new 這個關鍵詞時,實際上是做了額外的一些工作來建立我們需要的對象,我們調用了 Object 對象的構造方法。構造方法與類同名,並且不能定義傳回值類型,例如 Object 類的構造方法可能為:

public Object() {     // 這裡做一些初始化對象的操作} public Object(int size, String name) {     // 這裡做一些類似將size 與 name賦值給執行個體變數等初始化對象的操作     // 從這兩個構造方法可以看出,構造方法可以帶參數,並且在一個類中可以存在多個構造方法,只要它們符合重載的條件即可。     // 符合重載的條件分為兩點:參數的個數不同,相同位置上的參數的類型不同}public Object(String name, int size) {     // 這個建構函式與上一個是兩個不同的建構函式,因為他們滿足重載的條件}

      構造方法類似一個類的普通方法,但是它並不是類的普通方法,構造方法並沒有定義傳回值類型,而類的方法是必須定義傳回值類型的,這是它與普通類方法的唯一區別。 很多時候在我們編寫一個類時可能並沒有手動編寫一個構造方法,但它的確存在,因為 JVM 會自動對沒有定義構造方法的類添加一個不帶參數的空的構造方法。

      為什麼系統已經為我們添加了構造方法,我們還需要來建立自己的構造方法?構造方法最大的作用就是讓我們新建立的的對象在使用前被完整的初始化,想象一個Dog類,它有一個private int height; 執行個體變數,如果沒有構造方法,它剛剛被建立為對象時height值預設是0的,這樣我們就有了一個0高度的狗狗,顯然這樣不好。所以我們需要使用建構函式來初始化我們的對象,例如:

public class Dog {    int height;    public Dog() {        height = 30;    } // 當我們添加了自己的構造方法後,系統將不再為我們手動添加不帶參數的建構函式       // 這樣當我們的類的使用者使用不帶參數的構造方法建立對象時會產生錯誤,所以一般情況下建議       // 為類添加一個不帶參數的構造方法,並在其中給類的一些重要的執行個體變數一個預設值。    public Dog(int newHeight) {        height = newHeight;    } // 對不帶參數的構造方法的重載 }public class TestDog {    Dog myDog = new Dog(40);    System.out.print ( myDog.height );}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.