UML類圖常用用法
文章目錄
一.UML類圖圖示樣例
二.對上述圖片中的內(nèi)容具體分析
1.類的表示
2.接口的表示
3.依賴(Dependency)關(guān)系
4.繼承關(guān)系(泛化關(guān)系)
5.實現(xiàn)關(guān)系
6.關(guān)聯(lián)(association)關(guān)系
7.聚合(Aggregation)關(guān)系
8.組合(Composition)關(guān)系(也可翻譯為合成關(guān)系)
一.UML類圖圖示樣例
二.對上述圖片中的內(nèi)容具體分析
1.類的表示
首先來看動物矩形框,它代表一個類。
類圖分三層:
第一層顯示類的名稱,如果是抽象類,則用斜體顯示;
第二層是類的特性,也就是屬性;
第三層是類的操作,也就是方法。
屬性、方法前面的 '+'表示public ; ‘-’ 表示private; ‘#’ protected。
2.接口的表示
接口的表示與類有些區(qū)別,接口的頂端有<
第一行是接口的名稱。
第二行是接口的方法。
接口還有一種表示方法,俗稱棒棒糖表示法,如下:
也就是說唐老鴨這個類實現(xiàn)了講話人這個接口,接口中的講話()方法在唐老鴨這個實現(xiàn)類中得到實現(xiàn)。
3.依賴(Dependency)關(guān)系
依賴關(guān)系用虛線箭頭來表示,如下:
只要是在類中用到了對方,那么他們之間就存在依賴關(guān)系。具體如下:
類的成員屬性
方法的返回類型
方法接收的參數(shù)類型
方法中使用到
舉例:在類A的某個方法中,其方法的參數(shù)類型為類B、類C,則類A與類B、類C是依賴關(guān)系,代碼如下:
public abstract class Animal { public void metabolism(Oxygen oxygen,Water water){ } }
1
2
3
4
5
4.繼承關(guān)系(泛化關(guān)系)
繼承關(guān)系用空心三角形+實線來表示,如下:
泛化關(guān)系實際上就是繼承關(guān)系,他是依賴關(guān)系的特例。
如果A類繼承了B類,我們就說A和B存在泛化關(guān)系。
5.實現(xiàn)關(guān)系
實現(xiàn)接口用空心三角形+虛線來表示,如下:
實現(xiàn)關(guān)系實際上就是A類實現(xiàn)B接口,他是依賴關(guān)系的特例。
6.關(guān)聯(lián)(association)關(guān)系
關(guān)聯(lián)關(guān)系用實線箭頭來表示,如下:
關(guān)聯(lián)關(guān)系實際上就是類與類之間的聯(lián)系,他是依賴關(guān)系的特例
關(guān)聯(lián)具有導(dǎo)航性:即雙向關(guān)系或單向關(guān)系
關(guān)系具有多重性:如“1”(表示有且僅有一個),“0…”(表示0個或者多個), “0,1”(表示0個或者一個),“n…m”(表示n到 m個都可以),“m…*”(表示至少m 個)。
單向一對一關(guān)系
public class Person { private IDCard card; } public class IDCard{}
1
2
3
4
雙向一對一關(guān)系
public class Person { private IDCard card; } public class IDCard{ private Person person }
1
2
3
4
5
6
舉例:上述中的企鵝需要知道氣候的規(guī)律,才能夠進行一些活動,如下蛋,捕食等等,當(dāng)一個類中引用到另一個類時,這個時候就是關(guān)聯(lián)關(guān)系,如下面的代碼:
Class Penguin extends Bird { //在企鵝Penguin類中引用了氣候Climate類 private Climate climate; }
1
2
3
4
7.聚合(Aggregation)關(guān)系
聚合關(guān)系用空心的菱形+實線箭頭來表示,如下:
聚合關(guān)系是一種弱的“擁有”關(guān)系。
聚合關(guān)系(Aggregation)表示的是整體和部分的關(guān)系,整體與部分可以分開。
聚合關(guān)系是關(guān)聯(lián)關(guān)系的特例,所以他具有關(guān)聯(lián)的導(dǎo)航性與多重性。
比如一臺電腦由鍵盤、顯示器,鼠標(biāo)等組成;組成電腦的各個配件是可以從電腦上分離出來的
例子:比如雁群和大雁,每只大雁都是屬于一個雁群,一個雁群可以有多只大雁,所以它們之間就滿足聚合關(guān)系,如下代碼:
public class WideGooseAggregate { //在雁群WideGooseAggregate類中,有大雁數(shù)組對象arrayWideGoose private WideGoose[] arrayWideGoose; }
1
2
3
4
8.組合(Composition)關(guān)系(也可翻譯為合成關(guān)系)
合成關(guān)系用實心的菱形+實線箭頭來表示,如下:
合成關(guān)系是一種強的“擁有”關(guān)系。
組合關(guān)系:也是整體與部分的關(guān)系,但是整體與部分不可以分開,體現(xiàn)了嚴(yán)格的部分和整體的關(guān)系,部分和整體的生命周期一樣。
合成關(guān)系連線的兩端有一個數(shù)字1和2,這被稱為基數(shù),表明這一端的類可以有幾個實例:
在該例子中1和2表示一個鳥有兩只翅膀;
如果一個類可能有無數(shù)個實例,則就用n來表示;
另外關(guān)聯(lián)關(guān)系,聚合關(guān)系也可以有基數(shù)。
簡單來說,在A類中的構(gòu)造器中實例化B類(創(chuàng)建B類對象),它們之間同時生成。
例子:比如鳥和翅膀,因為它們是部分和整體的關(guān)系,并且翅膀和鳥的生命周期是相同的,如下代碼:
public class Bird { private Wing wing; public Bird(){ //在Bird類的構(gòu)造器中創(chuàng)建Wing類對象 wing = new Wing(); } }
1
2
3
4
5
6
7
8
UML
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。