1. 程式人生 > >Java提高篇(一):區分引用變數與物件

Java提高篇(一):區分引用變數與物件

我們有程式碼:

New A=new New();

下面是這個New的類:

class New
{
    public New()
    {
        System.out.println("這是New類當中的構造方法");
    }
    public int age=111;
    public String name="父類的名字";
    public void say(String content)
    {
        System.out.println(content);
    }

    public void great()
    {
        System.out.println("yellow");
    }
}

這樣我們就構成了一個物件的建立,但是在很多書上,A被稱為了我們新建立的物件,然而實際上並不是。A僅僅是我們所建立的一個引用變數。我們新建立的物件是由這個引用變數指向在堆中的物件,這個物件就包含了很多屬性了,比如我們剛剛所創建出來的New類的所有成員方法和成員變數。而A作為一個引用變數,則會儲存在棧當中,類似於C++當中的指標,這個指標(引用變數)就會指向堆中的物件。並不是我們傳統書上所說的A就是我們的物件。這一點在我們進行多型的理解時,就顯得異常重要了。