類
類是具有相同屬性,方法和關系的對象的抽象,它封裝了數據和行為,是面向對象程序設計的基礎,具有封裝,繼承和多態等三大特性,在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對象的一部分。 兩個對象具有各自的生命周期。
表示方式: 空心的菱形+實線箭頭
