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