物件與物件的關係初步理解

2021-08-13 22:07:34 字數 2167 閱讀 6801

類圖中的六種關係

類圖中,類與類之間一般會有六種關係,他們分別是繼承(generalization)、實現(

implements

)、組合(

composition

)、聚合(

aggressgation

)、依賴(

dependency

)、關聯(

association)

繼承(generalization)

在這裡teacher和

student

類分別是繼承了

person

類,自動擁有了

person

類的公共屬性和操作。同時他們分別擴充套件了自己獨有的操作

teach

和listen

。繼承關係用乙個實線空箭頭的連線來表示,箭頭指向父類

實現(implements)

實現的概念和繼承有些類似。但是介面中不會有已經寫好的操作或者方法,介面中宣告的操作都需要再實現類中實現。實現關係如下圖所示

在這裡superman類一樣繼承了

person

類,因為超人還有乙個特性是會飛,所以他還實現了乙個

fly的介面。實現關係用乙個虛線空心箭頭的連線來表示,箭頭指向介面。

組合(composition)

組合表示的是兩個物件之間一種強「擁有

」的關係,如果

b組合成為

a,那麼b是

a的乙個整體,b和

a的生命週期是一樣的。例如是一種部分與整體的關係,部分與整體之間的生命週期是一樣的。組合關係用乙個乙個帶箭頭的連線表示,尾巴上有實心的菱形,箭頭指向被擁有的物件。上面的數字表示兩者之間的數量關係。如下圖所示

在這裡,hand和

person

是組合關係,

hand

是person

的部分,

person

擁有hand

,而且hand

的生命週期依賴

person

的生命週期。也就是說

person

沒有了,

person

的hand

也沒有了。在這裡表示乙個

hand

一定歸宿乙個

person

而乙個person

可能有0

個或者多個

hand

。因為剛剛有報道說乙個人長了

3隻腳,所以乙個人也可能長出多條手哈

聚合(aggressgation)

聚合也表示兩個物件之間的一種擁有關係,但是這個關係是一種弱的擁有關係。兩者的生命週期是不依賴的。這是和組合的乙個重要區別。聚合關係用乙個帶箭頭的連續表示,尾巴帶乙個空心的菱形,箭頭指向被擁有的物件。上面的數字表示兩個物件之間的數量關係。如下圖所示

這裡classess是由

teacher

和student

聚合而成,他們之間是一種擁有關係,但是

classes

消亡,並不代表

teacher

和student

的消亡,他們的生命週期是不依賴的。這是和組合的重要區別。這幅圖裡面聚合關係上的數字表示乙個

teacher

可以在0

或者多個

classes

中,而乙個班級可以由

0到多個

teacher

。classes

和student

之間聚合關係上的的數量表示的是同樣的含義。

依賴(dependency)

如果乙個物件的活動中要依賴另乙個物件,則兩者之間是依賴關係。例如學生上課依賴課程物件,老師教課也依賴課程物件。依賴關係用乙個虛線箭頭表示,箭頭指向被依賴的物件。在**中一般體現為操作的引數。如下圖所示

關聯關係(association)

如果乙個物件需要知道另乙個物件,則物件之間是一種關聯的關係。關聯可以是單向的,即乙個物件知道另乙個物件,而另乙個物件不知道該物件,也可以是雙向的,即兩個物件相互知道。關聯式用一條實現表示,單向關聯帶乙個箭頭,指向被知道的物件,雙向關聯無箭頭。例如學生需要了解考試物件的情況,考試物件需要了解學生的情況,這是一種雙向關聯關係。如下圖所示。

類與物件的關係

類是一種抽象的資料型別,他是對某一類事物的描述 定義,但是不能代替某乙個具體事物 例如 動物 職務 手機等 person類 pet類 car類等,這些類都是用來描述 定義某一類具體事務應該具備的特點和行為。物件是抽象 概念的具體例項 張三就是人的乙個具體例項,張三家裡的狗就是乙個狗的具體例項。能夠體...

核心物件與控制代碼的關係

一 乙個物件是不是核心物件,通常可以看建立此物件api的引數中是否需要 psecurity attributes 型別的引數。三 每個程序中有乙個控制代碼表 handle table 這個控制代碼表僅供核心物件使用,如下圖 四 解開此中的秘密 比如呼叫建立乙個執行緒的api handle hthre...

XML 與DataSet 物件的關係

在.net framework 中,經常使用xml 作為儲存和傳輸各種資料的格式。dataset 中的資料可以轉換成xml 的形式來表示和儲存。我們可以使用xml 物件同步和轉換dataset 的資料,而dataset 也可以儲存和傳輸xml 格式的資料。xml 與 dataset 的關係如下圖所示...