java--對象引用與對象的區別


一、前言
       在java學習中,理解對象以及對象的引用是萬里長征的第一步。但是,現在大量的java學習書籍都將對象以及對象的引用混為一談,然而實際上它們有着本質的區別。為了幫助更多的java學者更好的理解,我將自己的學習理解記錄下來。如有理解不全或者錯誤的地方,歡迎大家批評指正。
二、分析對象引用與對象的區別
       為了接下來進行更好的分析,我先建立一個Demo類,用於后面的分析。
    
    
    
            
  1. public class Demo{
  2.  
  3. //默認構造方法
  4.  
  5. public Demo{ }

  6. }
    接下來,我們用Demo類來創建一個對象。

     
     
     
             
  1. Demo demo=new Demo();
 這一條語句,其實包括了四個動作:
     1)右邊的“new Demo”,是以Demo類為模板,在堆空間里創建一個Demo對象
     2)末尾的()意味着,在對象創建后,立即調用Demo類的構造函數,對剛生成的對象進行初始化。 
     3)左邊的“Demo demo”創建了一個Demo類引用變量,它存放在棧空間中。也就是用來指向Demo對象的對象引用。 
     4)“=操作符使對象引用指向剛創建的那個Demo對象
      
      當然這條語句我們也可以寫成:
      
      
      
              
  1. Demo demo;//創建對象引用

  2. demo=/*將對象引用指向對象*/new Demo();//創建對象

  三、對象引用與對象之間的關系
       1)從對象引用出發:
             一個對象引用可以指向一個對象     
        
        
        
                
  1. Demo demo//一個對象引用
  2. demo=new Demo();//一個對象引用指向一個對象
                        也可以不指向對象。  
          
          
          
                  
  1. Demo demo;//創建對象引用,但是沒有指向對象
2)從對象出發:
             一個對象可以被一個對象引用引用  
   
   
   
           
  1. Demo demo;//創建對象引用
  2. demo=new Demo();//創建對象,並被一個對象引用指向
                    也可以被多個對象引用同時引用
      
      
      
              
  1. Demo demo1demo2demo3;//創建多個對象引用
  2. demo1=new Demo();
  3. demo2=demo1;
  4. demo3=demo2;//創建對象,並被多個對象引用指向


 

























免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM