2012-10-02 76 views
0

我有一個疑問,假設在我的類(比如包含類)我有一個字段實例是參考類型的對象(比如另一類作爲示例,調用它內部類),在運行時何時在堆上創建了包含類的對象,包含類是否存儲了整個內部類對象,或者包含類是否存儲了內部類的引用呢?位置對象

internal class ContaingClass 
    { 
     private InnerClass objInner; 
    } 

ContainingClass的對象是否有objInner的引用或應該存儲整個objInner及其所有的數據?

回答

1

InnerClass是它存儲爲refence到實例的引用類型。

這裏是埃裏克利珀,說明在執行過程中發生了什麼細節an answer

+0

感謝您的回答,@PHeiberg:一個更quesry,如果內實例變量將是值類型,那麼ContainingClass的對象將是具有它存儲在它的或基準值的裝箱值類型的對象? – mohits00691

+0

ContainingClass將保存值類型的值,而不是引用。 – PHeiberg

1

在構建時它將在該字段中包含空引用(假設您的構造函數未將其設置爲任何內容)。該字段稍後可以分配給對實例的引用,但該實例的「內容」不會存儲在ContainingClass的「內容」中。