關於「物件為何要 new 完之後才可以使用?」這個問題,我在 Java 的書上看到作者將程式語法搭配記憶體的配置,解釋的很清楚,也分享一下。
MyObj obj=new MyObj(10);
把上述語法拆開來,分成三個部份。
首先是: MyObj obj
宣告了 obj 這個變數,會在記憶體中,如下圖,先配置一塊空間給 obj。而這塊記憶體空間,目前是空的(null),所以我們現在並沒辦法存取 obj 裡的資料。
接著是: new MyObj(10)
這個動作,會在記憶體另外配置一塊空間,而參數10,也一併會寫入這塊記憶體空間。
最後是:MyObj obj = new MyObj(10);
將 MyObject 的記憶體位址(0x1a2b3c4d),寫到 obj 的記憶體空間裡。日後,從 obj 就可以存取 MyObject 這塊記憶體裡的資料了。
參考:
01:Java SE 6全方位學習
2012年7月13日 星期五
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言