天天看點

Java提高篇(一):區分引用變量與對象

我們有代碼:

New A=new New();      

下面是這個New的類:

1 class New
 2 {
 3     public New()
 4     {
 5         System.out.println("這是New類當中的構造方法");
 6     }
 7     public int age=111;
 8     public String name="父類的名字";
 9     public void say(String content)
10     {
11         System.out.println(content);
12     }
13  
14     public void great()
15     {
16         System.out.println("yellow");
17     }
18 }      

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

---------------------