定義類的語句執行結束就會占有自己的空間
其中儲存著屬於類的靜態屬性和方法名所對應的記憶體位址(呼叫這個方法則尋到這個位址並執行)
物件例項化,開在獨立開闢乙個屬於這個物件的空間,這個物件空間裡最開始只有類物件指標(指向這個物件所屬的類),
物件呼叫方法或靜態屬性的順序是:
先找物件空間,再找類指標的對應的類空間,再找父類……
類是模板,通過類名是找不到物件空間的值的
物件是由模板而來,可以找的到類的屬性方法,但是只能找,不能修改(此處有坑)
類可以修改類的靜態物件,但是,物件不能,一旦執行改形式的語句只會給物件的空間內新增屬性,與類無關。
面試題(坑)
如果是對於類的乙個內容可變的屬性進行操作,對於可變的內容是可以通過物件名進行一系列增刪改操作的.
以列表為例,類內對應屬性儲存的是這個列表的位址值,對其增刪改會改變列表的內容但是不會改變列表的位址,
也就是說實際上並沒有改變類空間,變得是這個位址對應的內容.而這個內容並沒有存在類空間裡.
同樣,這裡的重點是這個位址對應的內容是可變的,如果該位址對應於乙個不可變的"alex",
那麼通過物件名試圖對其進行修改只會在空間裡行開闢乙個位址,且儲存在物件的空間裡,與類無關。
組合的定義:給乙個類的物件封裝乙個屬性,這個屬性是另乙個類的物件。
前乙個類在具有了這個本身就是另外乙個類的屬性之後,便可以通過訪問這個屬性來呼叫對應類中的方法和屬性了.
避免了一些面對物件程式設計時,主體的錯誤.
類之間的關係(1 使用關係和組合關係)
組合關係中的建構函式和析構函式的呼叫順序 組合關係中呼叫成員的帶引數的建構函式 之前的章節我們介紹了單個類有關的知識。在程式中如果出現多個類,那麼它們之間會表現出一定的關係。粗略的看,類之間有以下幾種關係 使用關係是比較弱的關係,就是說a類使用了b類的功能 方法 在 層面,a類可能以如下方式使用了b...
類的關聯 組合 聚合關係
關聯 類的例項持有著對其他物件的引用,沒有整體與部分的意義。組合 整體與部分的關係,且類的例項與其內部的物件在生命期上保持一致,同時建立和銷毀。另外,組合不允許有組合迴路,否則編譯不報錯,但是執行時將會出現stackoverflowexception 的異常導致程式終止。聚合 整體與部分的關係,且類...
類的六大關係之組合關係
廢話少說,直接上工程目錄 對應的uml圖 說明 是整體與部分的關係,但部分不能脫離整體而獨立存在。邏輯上能用 has a 表示。體現 成員變數。author 歪鼻子 suppresswarnings all public class computer public void setmouse mou...