java對象,引用,實例 – JAVA編程語言程序開發技術文章

談到引用,顧名思義,就在引用一個東東,這個東東就是內存地址,扯到內存地址瞭,那就復雜咯。還是從實際幫你分析。
Java代碼 
class Picture {  
int width;  
int length;  
……  
}  
Picture(int x,int y)  
{  
width=x;  
lenth=y;  
}  
Picture pic = new Picture(3, 4);  
 1:為什麼要使用到類?
這裡創建瞭Picture類,類就是一個模子,是一個制造Picture圖片的模子,java裡面為什麼要有類?如果沒有類,我們表示一張圖片的時候,要申明一個寬width1,長length1等等屬性,我們表示第二張圖片的時間,又要申明一個寬width2,長length2,申明N張圖片,不曉得申明多少個寬和長咯,好累哦。
有瞭類,就方便啦,Picture pic1= new Picture();Picture pic2..Picture pic3….;調用屬性 就這樣pic1.width,pic2.width,是不很方便,這裡是為什麼要使用到類的原因。
2:講下實例,對象,對象的引用;
你定義完瞭一個Picture類的時候,裡面的長,寬的屬性並沒被分配格子來儲存這2個屬性,定義的Picture類 僅僅是一個模型,不是實實在在的圖片,java裡面通過new來制造真正的圖片,new Picture(3,4)是制造瞭一個寬為3,長為4的圖片,於是乎,我們就可以通過new Picture(3,4)來調用 這個圖片的屬性啦,new Picture(3,4).width,new Picture(3,4).length。
你可能有疑問瞭,為什麼用new Picture(3,4),後面的Picture(3,4)是什麼?,其實它是初始化Picture的寬和長這2個屬性,你想想,你定義一張真實的圖片的同時,肯定要設計好寬 和長的大小啦。所以new 後面緊跟Picture(3,4),這個構造函數。有些教科書關於實例說的很不清楚,實際上,從上面看new Picture(3,4)就一個實例瞭,是一個實實在在的圖片!
繼續分析,我每次調用屬性,總要new Picture(3,4).length,是不是太長瞭?
找個東西來代替new Picture(3,4)吧,我們就用pic1代替new Picture(3,4),那麼調用屬性就隻需要pic1.length啦,pic1這個變量如何申明?Picture pic1,就這樣申明啦!於是我們把他們等號起來Picture pic1=new Picture(3,4);那麼就可以說pic1就是緊挨著後面等於的new Picture(3,4)這個對象,為什麼是緊挨的呢?同樣大小的照片可以有很多張,於是我們可以再new Picture(3,4) NEW一個圖片出來,也是寬為3,長為4的,我後面new 出來的圖片 就不等於 前面的pic1瞭。在Picture pic1=new Picture(3,4);中pic1是對象,或者叫它實例,後面緊挨的new Picture(3,4)也是對象,或者也叫它實例,它們2個是等價的。
那麼對象的引用是?前面說,我們是用pic1代替new Picture(3,4),那麼就可以說pic引用瞭緊挨著等號後面的那個實例圖片或者對象,所以pic1也稱為引用。
現在做總結:pic1是對象,是實例,還是這個對象的引用;new Picture(3,4)是一個實實在在的圖片,隻能是對象或者稱為實例,不能稱為引用!
-pic1其實存儲瞭一個字節的內存地址,這個地址 就是new Picture(3,4)堆內存地址的第一個地址,也就是首地址-專業術語叫做,pic1指向瞭 new Picture(3,4)堆內存地址的首地址。

發佈留言