8 2 4物件之間的關係

2022-01-14 18:49:29 字數 740 閱讀 1501

繼承是物件之間的一種簡單關係,可以讓派生類完整地獲得基類的特性,而派生類也可以訪問基類內部的一些工作**(通過protected成員)。物件之間還有其他一些比較重要的關係。

本節簡要討論下述關係

包含關係

乙個類包含另乙個類。這類似於繼承關係,但包含類可以控制 對被包含類的成員的訪問,甚至在使用被包含類的成員前進行其他處理

集合關係

乙個類用作另乙個類的多個例項的容器。這類似於物件陣列,但集合有其他功能,包括索引、排序、重新設定大小等。

1.包含關係

用乙個成員字段包含物件例項,就可以實現包含關係。這個成員字段可以是公共字段,此時與繼承關係一樣,容器物件的使用者就可以訪問它的方法和屬性,但不能像繼承關係那樣,通過派生類訪問類的內部**。

另外,可以讓被包含的成員物件變成私有成員。如果這麼做,使用者就不能直接訪問其成員,即使這些成員是公共的,也不能訪問。但可以使用包含類的成員訪問這些私有成員。也就是說,可以完全控制被包含的類有什麼成員,如果有成員,還可以在被包含類的成員前,在包含類的成員上進行其他處理。

例如://udder乳房

cow類包含乙個udder類,它有乙個公共方法milk。cow物件可以按照要求呼叫這個方法,作為supplymilk()方法的一部分,但cow物件的使用者看不到這些細節。

在uml中,被包含類可以用關聯線條來表示。對於簡單的包含關係,可以用帶有1的線條說明一對一的關係(乙個cow例項包含乙個udder例項)

重構筆記03 物件之間搬遷特性

前言 在物件導向設計過程中,決定把責任放在那兒 即使不是最重要的事,也是最重要的事之一。這個思想其實對類較重要,在js中,函式應該完成什麼職責,也需要分清楚,不要函式做了自己的事情,又做了一部分其它函式的事情。在js中,往往只有乙個類,物件導向的思想其實比較難,沒有一定功力不能很好的運用,我也在學習...

OC 005 物件與函式的關係

物件作為函式引數傳遞是 位址傳遞 在函式內部可以通過物件訪問它裡面成員變數 也可以物件呼叫它的物件方法 成員方法 在函式中建立的物件是在堆中的,所以可以當做返回值 區域性變數是存在在棧裡面,當大括號結束的時候區域性變數會唄系統 不能做為返回值 定義person類 inte ce lsperson n...

物件之間的關係

下面以物件間的耦合度和關係的強弱性的由低到高進行描述 依賴 dependency 物件之間最弱的一種關聯方式,是臨時性的關聯。中一般指由區域性變數 函式引數 返回值建立的對於其他物件的呼叫關係。圖 依賴關係 1 就是乙個物件呼叫被依賴物件中的某些方法而得以完成這個物件的一些職責 2 這是一種比較鬆散...