類是一組對象的描述,這組對象具有共同的屬性、行為(操作)、關系和語義.
類是對象的藍圖,其中包含3個組成部分。第一個是Java中定義的類名。第二個是屬性(attributes)。第三個是該類提供的方法。
屬性和操作之前可附加一個可見性修飾符。加號(+)表示具有公共可見性。減號(-)表示私有可見性。#號表示受保護的可見性。省略這些修飾符表示具有package(包)級別的可見性。如果屬性或操作具有下劃線,表明它是靜態(tài)的。在操作中,可同時列出它接受的參數(shù),以及返回類型,如圖(1):
?


約束
可以用約束(constraint)來添加足夠的信息,使類的描述更加明確。
約束用括號括起來的字符串表示
Professor
name: String
age: Integer?? { age>40 }?
注釋
通過注釋的方式可以對類附加更多的信息?
關聯(lián)
關聯(lián)是類之間的聯(lián)系
關聯(lián)的名稱應該反映關系的用途,并且是一個動詞;該名稱可以忽略,尤其是使用角色名的時候。
?應該盡量避免使用“具有”和“包含”這樣的名稱,因為它們不包含說明類之間具有什么關系的信息。
角色名相對于類必須是唯一的。 角色名應該是一個名詞,它表示被關聯(lián)的對象相對于關聯(lián)對象的角色。 角色名放在關聯(lián)線一端的旁邊。
?
單向關聯(lián)
如果類與類之間的聯(lián)系是單向的,則稱為導航關聯(lián)。
導航關聯(lián)用實線箭頭連接兩個類,只有在箭頭方向上才有這種關聯(lián)關系。
關聯(lián)的約束
兩個類之間的一個關聯(lián)需要一個規(guī)則約束,可以通過在關聯(lián)線附近加注一個約束來說明這個規(guī)則。

關聯(lián)類
和類一樣,關聯(lián)也可以擁有自己的屬性和操作,此時這個關聯(lián)實際上就是一個關聯(lián)類(association class)

多重性
多重性(multiplicity)定義有多少對象參與了某個關系。
?3: 多重值和它們的表示
可能的多重值描述
表示?? 含義
0..1??? ?0個或1個
1??????? 只能1個
0..*??? ?0個或多個
*??????? 0個或多個
1..*???? 1個或我個
3??????? 只能3個
0..5??? ?0到5個
5..15??? 5到15個?
?限定關聯(lián)
?

遞歸關聯(lián)
當一個類與它自己發(fā)生關聯(lián)的時候,我們稱其為“遞歸關聯(lián)”(reflexive association)
?
泛化
在面向?qū)ο蟮男g語中,上述關系被稱為繼承(inheritance)。
UML中稱它為泛化(generalization),定義是:將類抽象為更一般的類的過程。被泛化的類稱為子類,得到的類稱為超類。
依賴(dependency)
描述的是兩個模型元素之間的語義上的連接關系。其中一個模型元素是獨立的,而另外一個依賴于獨立的這個模型元素,當獨立的模型元素發(fā)生變化時將會影響依賴于該模型元素的模型元素。

聚集(aggregation)
聚集(aggregation)表示整體與各部分之間的關系
?
組成
組成是一種整體和部分所屬更強的聚集關系,每個部分只能屬于一個整體,沒有整體,部分也沒有存在的價值

接口和實現(xiàn)
接口是用于指定類或組件的服務的操作的集合。
接口的表示法和類大致相同,都是用一個矩形來表示,并在矩形框中接口的名稱上方放置構造型《interface》進行說明。
實現(xiàn)(realization)
類和接口之間的關系稱為實現(xiàn)(realization)。實現(xiàn)關系用一個帶空心三角形箭頭的虛線來表示,箭頭的方向指向接口。
?
?
總結
類圖標是一個包括三個部分的矩形
對象以名稱帶下劃線的矩形表示
約束允許在現(xiàn)有 UML 模型中加入新的語義或更改現(xiàn)有的語義
關系以線條的形式來模型化,不同類型的線條用于表示不同類型的關系
多重性定義有多少對象參與了某個關系
聚集表示整體與各部分之間的關系
組成是一種強類型聚集關系,表明了部分和整體之間很強的所屬關系和一致的生命周期
依賴關系表示模型元素之間的語義關系
發(fā)生在同一個類的對象之間的關聯(lián)稱為“遞歸關聯(lián)”
使用泛化原則共享屬性和操作的機制稱為“繼承”
接口是用于指定類或組件的服務的操作的集合。
轉載注明:http://m.tkk7.com/wujun
了解更多
http://www.holub.com/goodies/uml/