類涉及的空間關係及組合 可變項位址面

2022-09-11 21:57:26 字數 741 閱讀 7916

定義類的語句執行結束就會占有自己的空間

其中儲存著屬於類的靜態屬性和方法名所對應的記憶體位址(呼叫這個方法則尋到這個位址並執行)

物件例項化,開在獨立開闢乙個屬於這個物件的空間,這個物件空間裡最開始只有類物件指標(指向這個物件所屬的類),

物件呼叫方法或靜態屬性的順序是:

先找物件空間,再找類指標的對應的類空間,再找父類……

類是模板,通過類名是找不到物件空間的值的

物件是由模板而來,可以找的到類的屬性方法,但是只能找,不能修改(此處有坑)

類可以修改類的靜態物件,但是,物件不能,一旦執行改形式的語句只會給物件的空間內新增屬性,與類無關。

面試題(坑)

如果是對於類的乙個內容可變的屬性進行操作,對於可變的內容是可以通過物件名進行一系列增刪改操作的.

以列表為例,類內對應屬性儲存的是這個列表的位址值,對其增刪改會改變列表的內容但是不會改變列表的位址,

也就是說實際上並沒有改變類空間,變得是這個位址對應的內容.而這個內容並沒有存在類空間裡.

同樣,這裡的重點是這個位址對應的內容是可變的,如果該位址對應於乙個不可變的"alex",

那麼通過物件名試圖對其進行修改只會在空間裡行開闢乙個位址,且儲存在物件的空間裡,與類無關。

組合的定義:給乙個類的物件封裝乙個屬性,這個屬性是另乙個類的物件。

前乙個類在具有了這個本身就是另外乙個類的屬性之後,便可以通過訪問這個屬性來呼叫對應類中的方法和屬性了.

避免了一些面對物件程式設計時,主體的錯誤.

類之間的關係(1 使用關係和組合關係)

組合關係中的建構函式和析構函式的呼叫順序 組合關係中呼叫成員的帶引數的建構函式 之前的章節我們介紹了單個類有關的知識。在程式中如果出現多個類,那麼它們之間會表現出一定的關係。粗略的看,類之間有以下幾種關係 使用關係是比較弱的關係,就是說a類使用了b類的功能 方法 在 層面,a類可能以如下方式使用了b...

類的關聯 組合 聚合關係

關聯 類的例項持有著對其他物件的引用,沒有整體與部分的意義。組合 整體與部分的關係,且類的例項與其內部的物件在生命期上保持一致,同時建立和銷毀。另外,組合不允許有組合迴路,否則編譯不報錯,但是執行時將會出現stackoverflowexception 的異常導致程式終止。聚合 整體與部分的關係,且類...

類的六大關係之組合關係

廢話少說,直接上工程目錄 對應的uml圖 說明 是整體與部分的關係,但部分不能脫離整體而獨立存在。邏輯上能用 has a 表示。體現 成員變數。author 歪鼻子 suppresswarnings all public class computer public void setmouse mou...