Java中對象與實例的關係

在《Thinking in Java》一書裏提到:“每個對象都是某個類(class)的一個實例,這裏類就是類型的意思”。

通俗地說,實例表示的是對象和類的關係

比如:

Person b=new Person();     

new Person()新建了一個Person對象,而b則是一個指向Person對象的引用,這個Person對象就是Person類的一個實例。

此時,可以認爲實例和對象是一樣的概念。

 

Person b=new Person("a");  

new Person();是一個對象,放在堆(heap)空間

a屬於new  Person()裏面的是一個實例(放在常量池中)。

b屬於一個引用,放在棧(stack)空間,要操作對象必須通過引用間接操作。    

這個地址是指向new  Person()這個對象的。    

 

棧:存放基本類型的數據和對象的引用,但對象本身不存放在棧中,而是存放在堆中   

堆:存放用new 產生的數據   

 

如果是出現多態的話,

//Child extends Person
Person person = new Child();

可以看出new Child()這個實例化過程顯然並沒有將Child類的所有函數實例化,因爲person是無法調用Child類獨有的方法的。

所以只是部分實例化,這也表現了實例和對象之間的區別。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章