對象和對象執行個體

來源:互聯網
上載者:User

對象和執行個體有什麼區別?

對象和執行個體從宏觀的角度看,區別是:對象是同類事物的一種抽象表現形式,而執行個體是對象的具體化,一個對象可以執行個體化很多執行個體,對象就是一個模型,執行個體是照著這個模型生產的最終產品。實際上就是這樣,一個對象可以執行個體化N個執行個體。就像根據一個模型可以製造多個執行個體的產品一樣。
從記憶體配置的角度來看,對象是儲存在堆中的,而執行個體是儲存中棧中的,執行個體其實只是對象的一個引用,也就是指向對象的指標。
 

 

舉個形象的例子。肯德基裡有雞翅膀。假設你去麥當勞買雞翅膀,那菜單上的雞翅膀就是雞翅膀類,架子上的雞翅膀們呢是雞翅膀對象,而你啃到的那個雞翅膀,就是雞翅膀執行個體。
Class   雞翅膀
        雞翅膀   炸雞翅     (對象)
        雞翅膀   炸雞翅   =   new   一個炸雞翅   (一個炸雞翅就是對象的執行個體,同時也是一個對象)

 

 

很多地方有對象執行個體  instance of object 的寫法。真是讓人迷惑啊。
查了一些資料,經過分析,現在覺得這個結論還是比較容易讓人理解:
類-->對象-->執行個體
人類是類
某個人是對象
你是執行個體
執行個體本身也是對象。

表現出來是這樣的
String 類
String str   str是對象
String str = "abc";  "abc"是執行個體,也是對象.
這樣也能解釋instance of object這種說法  str的執行個體是"abc"

暫時先這麼理解,希望有人能提出更好的理解方法和見解。。。

 

 

 

 

對象是指建立在堆棧中的引用名
執行個體是指建立在堆中的類的具體一個表現

一般我們講申明一個對象,建立一個執行個體

申明一個對象就像String s;,只是一個空的沒有引用的變數名

建立一個執行個體就是調用類的構造器 new ClassConstrutor();,在記憶體中分配了具體空間,但並沒有把它賦給任何一個引用,所以你不能調用到它

將2者結合起來才是一個完整的對象建立過程。
String s = new String();
(把具體執行個體地址存放在對象中)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.