一、什么是 UML 類圖
UML 類圖是系統分析和設計階段的重要產物,是系統編碼和測試的重要模型,它用來描述系統中類的內部結構、類與類之間的關系,可以簡化人們對系統的理解
二、UML 類圖單個類的表示方式
單個類的類圖使用包含類名、屬性(field)和方法(method)且帶有分割線的矩形來表示,例如下面的這個類圖
屬性的完整表示方式: 可見性 名稱 :類型 [ = 屬性的默認值]
方法的完整表示方式: 可見性 名稱(參數列表) : 返回值類型
屬性/方法的可見性有四種表現方式
- : private
什么都不寫: default
# : protected
+ : public
所以上面的類圖可以使用如下代碼來描述
public class User {
private Integer id;
String name;
protected Integer age;
public Double height;
private void eat(){
System.out.println("eat a lot of thing makes me stronger");
}
void drink(){
System.out.println("I like drink a cup of tea");
}
protected String play(){
return "play makes me happy";
}
public Integer think(){
System.out.println("think make us clever");
return 10086;
}
}
三、UML 類圖類與類關系的表示方式
1、關聯關系
關聯用來表示兩個或多個類的對象之間的結構關系,它在代碼中表現為一個類以屬性的形式包含對另一個類的一個或多個對象
1.1、單向關聯
一個類的屬性是另外一個類的對象,表現為 單向箭頭指向被使用的類
1.2、雙向關聯
兩個類的屬性都持有對方類的對象,表現為 雙向箭頭或者是直線
1.3、自關聯
一個類的屬性就是這個類的對象
1.4、聚合關系
聚合關系也屬於關聯關系,是一種強關聯關系,是整體和部分之間的關系
表現為: 空心菱形指向整體
聚合關系也是通過成員對象來實現的,其中成員對象是整體對象的一部分,但是成員對象可以脫離整體對象而獨立存在,例如學校與老師的關系,學校里面有很多老師,如果學校停辦了,老師並不會受到影響,依然繼續存在
1.5、組合關系
組合關系類似於聚合關系,也是整體和部分之間的關系,它是一種更強烈的聚合關系,整體對象可以控制部分對象的生命周期,一旦整體對象不存在了,那么部分對象也將不存在,例如人的身體和手臂的關系,如果人的身體不存在了,那么手臂也不會存在
表現為: 實心菱形指向整體
1.6、依賴關系
依賴關系是一種使用關系,它是對象之間 耦合度最小 的一種關聯方式,它是一種臨時性的關聯,在代碼中某個類通過局部變量、方法的參數、或者靜態方法的調用來使用另外一個類的某些方法來完成一些功能
2、繼承關系
繼承關系是對象之間 耦合度最大 的一種關系,表示為一般和特殊的關系,是父類與子類的關系
表現為: 帶空心三角箭頭使用實線由子類指向父類
3、實現關系
實現關系是接口和實現類之間的關系,在這種關系中,類實現了接口,類中的操作實現了接口中所聲明的所有抽象操作
表現為: 帶空心三角箭頭使用虛線由子類指向父類