類別圖
使用三層的矩形框來表示一個類別,如下圖:
- 第一層:類別的名稱。
- 第二層:類別的特性,也就是成員變數、屬性。
封裝等級 變數名稱: 變數型態 或 封裝等級 變數名稱: 變數型態 = 初始值
- 第三層:類別的操作,也就是成員函式、方法。
封裝等級 函式名稱(輸入參數 1: 參數 1 型態, 輸入參數 2: 參數 2 型態, ...): 回傳值型態
冒號「:」表示成員變數和回傳值的資料型態。
等號「=」表示初始值。
封裝等級
封裝等級由以下四個符號表示:
「+」- public
「#」- protect
「-」- private
「~」- package
Example.
對應的程式碼 ( Java ):
public class TestClass{
public TextClass(){
}
public int publicAttribute = 1;
protected String protectAttribute;
private long privateAttribute;
char packageAttribute;
public String publicMethod(int Parameter){
return "";
}
protected void protectMethod(){
}
private void privateMethod(){
}
void packageMethod(){
}
}
static 靜態成員
以底線表示 static 靜態成員。
Example.
對應的程式碼 ( Java ):
public class TestClass{
public TextClass(){
}
public static int publicAttribute = 1;
public String publicMethod(int Parameter){
return "";
}
}
abstract 抽象類別
類別或方法名稱以斜體表示為抽象類別或抽象方法。
Example.
對應的程式碼 ( Java ):
public abstract class TestClass{
public TextClass(){
}
public int publicAttribute = 1;
public abstract void publicMethod(){
}
}
interface 介面
介面的表示方式有兩種,一種是圓圈,另一種是名稱上面標示《interface》字樣,與一般類別圖類似,如下圖:
inheritance 繼承關係
以帶空心三角箭頭的實線來表示,且箭頭指向父類別,如下圖:
interface 介面與 implement 實現關係
以帶空心三角箭頭的虛線來表示,且箭頭指向介面或直接以實線連接圓圈,如下圖:
dependency 依賴關係
依賴關係是一種使用的關係,即一個類別的實現需要另一個類別的協助。
以帶箭頭的虛線來表示,且箭頭指向提供協助的類別,如下圖:
※subString 函式的輸入參數需要 String 類型,因此 StringTools 類別依賴於 String 類別。
association 關聯關係
關聯關係是一種擁有的關係,表示某個類別知道另一個類別的屬性和方法,例如老師和學生、丈夫和妻子,此關聯關係可以是雙向的,也可以是單向的。
雙向的關聯關係以帶有兩個箭頭或不帶箭頭的實線來表示,單向的關聯關係以帶有一個箭頭的實線來表示且箭頭指向被擁有者,如下圖:
aggregation 聚合關係
聚合關係是表示整體與部分之間的關係,且部分可以離開整體而單獨存在,如車和輪胎就是整理和部分的關係,輪胎離開車仍然可以存在。
以帶空心菱形的實線來表示,且菱形指向整體,如下圖:
composition 組合關係
組合關係也是表示整體與部分之間的關係,但部分不能離開整體,無法單獨存在,如人跟手。
以帶實心菱形的實線,且菱形指向整體,如下圖: