UML類圖
類
類是具有相同屬性,方法和關係的對象的抽象,它封裝了數據和行為,是面向對象程式設計的基礎,具有封裝,繼承和多態等三大特性,在UML中,類使用包含類名、屬性和操作且帶有分隔線的矩形來表示。
-
類名是一個字元串,例如 Student
-
屬性是類的特性,即類的成員變數,在UML中按以下格式表示:
[可見性]屬性名:類型[=默認值]
例如: -name:String
注意:"可見性"表示該屬性對類外的元素是否可見,包括公有(public)、私有(private)、受保護(protedted)、和朋友(friendly)四種,在類圖中分別用符號+、-、#、~表示。
- 操作是類的任意一個實例對象都可以使用的行為,是類的成員方法,在UML按以下格式表示:
[可見性]名稱(參數列表)[:返回類型]
例如:+display():void
介面是一種特殊的類,它具有類的結構但不可被實例化,只可以被子類實現。它包含抽象操作,但不包含屬性。它描述了類或組件對外可見的動作。在 UML 中,介面使用一個帶有名稱的小圓圈來進行表示,以下為介面的兩種表示方法
類之間的關係
泛化(Generalization)
對象間耦合度最大的一種關係,表示一般與特殊的關係,是一種繼承關係,是is-a的關係,例如 類與類之間的繼承關係,介面與介面之間的繼承關係
表示方式: 空心三角形+實線
示例: 比如 鳥類繼承 動物抽象類,鯽魚 繼承 魚
實現(Realization)
是介面與實現類之間的關係。在這種關係中類中實現了介面中聲明的所有抽象操作
表示方式: 1.空心三角+虛線 2.棒棒糖表示法
依賴(Dependency)
是一種使用關係,它是對象間耦合度最弱的一種關聯關係,是臨時性的關聯。在程式碼中,某個類的方法通過局部變數,方法的參數或者對靜態方法的調用來訪問另一個類中的某些方法類完成一些職責
表示方式:虛線箭頭
關聯(Association)
對象間的一種引用關係,用於表示一類對象與另一類對象之間的聯繫,比如 老師和學生,師傅和徒弟等。關聯關係是類與類之間最常用的一種關係,分為一般關聯,聚合關聯和組合關聯。先介紹一般關聯。
關聯可以是雙向的,也可以是單向的。在UML類圖中,雙向的關聯可以用帶兩個箭頭或者沒有箭頭的實線來表示,單向的關聯用帶一個箭頭的實線來表示,箭頭從使用類指向被關聯的類,也可以在關聯線的兩端標註角色名,代表兩種不同的角色。
在程式碼中通常將一個類的對象作為另一個類的成員變數類實線關聯關係。
組合(Composition)
組合是一種強的『擁有』關係,是一種contains-a的關係,體現了嚴格的部分和整體關係,部分和整體的生命周期一樣。
表示方式:實心的菱形+實線箭
聚合(Aggregation)
表示一種弱的『擁有』關係,即has-a的關係,體現的是A對象可以包含B對象,但B對象不是A對象的一部分。 兩個對象具有各自的生命周期。
表示方式: 空心的菱形+實線箭頭