一、類的屬性的表示方式
在UML類圖中,類使用包含類名忘渔、屬性(field) 和方法(method) 且?guī)в蟹指罹€的矩形來表示,比如下圖表示一個(gè)Employee類缰儿,它包含name,age和email這3個(gè)屬性畦粮,以及modifyInfo()方法。
那么屬性/方法名稱前加的加號(hào)和減號(hào)是什么意思呢乖阵?它們表示了這個(gè)屬性或方法的可見性宣赔,UML類圖中表示可見性的符號(hào)有三種:
· + :表示public
· - :表示private
· #:表示protected(friendly也歸入這類)
因此,上圖中的Employee類具有3個(gè)私有屬性和一個(gè)公有方法瞪浸。
實(shí)際上儒将,屬性的完整表示方式是這樣的:
可見性 名稱 :類型 [ = 缺省值]
中括號(hào)中的內(nèi)容表示是可選的
二、類的方法的表示方式
上圖中我們已經(jīng)看到了方法的表示形式对蒲。實(shí)際上钩蚊,方法的完整表示方式如下:
可見性 名稱(參數(shù)列表) [ : 返回類型]
同樣,中括號(hào)中的內(nèi)容是可選的蹈矮。
比如在下圖的Demo類中砰逻,定義了3個(gè)方法:
· public方法method1接收一個(gè)類型為Object的參數(shù),返回值類型為void
· protected方法method2無參數(shù)泛鸟,返回值類型為String
· private方法method3接收類型分別為int蝠咆、int[]的參數(shù),返回值類型為int
三北滥、類與類之間關(guān)系的表示方式
1勺美、關(guān)聯(lián)關(guān)系
關(guān)聯(lián)關(guān)系又可進(jìn)一步分為單向關(guān)聯(lián)、雙向關(guān)聯(lián)和自關(guān)聯(lián)碑韵。
(1)單向關(guān)聯(lián)
我們可以看到,在UML類圖中單向關(guān)聯(lián)用一個(gè)帶箭頭的直線表示缎脾。上圖表示每個(gè)顧客都有一個(gè)地址祝闻,這通過讓Customer類持有一個(gè)類型為Address的成員變量類實(shí)現(xiàn)。
(2)雙向關(guān)聯(lián)
從上圖中我們很容易看出,所謂的雙向關(guān)聯(lián)就是雙方各自持有對(duì)方類型的成員變量联喘。在UML類圖中华蜒,雙向關(guān)聯(lián)用一個(gè)不帶箭頭的直線表示。上圖中在Customer類中維護(hù)一個(gè)Product[]數(shù)組豁遭,表示一個(gè)顧客購(gòu)買了那些產(chǎn)品叭喜;在Product類中維護(hù)一個(gè)Customer類型的成員變量表示這個(gè)產(chǎn)品被哪個(gè)顧客所購(gòu)買。
(3)自關(guān)聯(lián)
自關(guān)聯(lián)在UML類圖中用一個(gè)帶有箭頭且指向自身的直線表示蓖谢。上圖的意思就是Node類包含類型為Node的成員變量捂蕴,也就是“自己包含自己”。
2闪幽、聚合關(guān)系
上圖中的Car類與Engine類就是聚合關(guān)系(Car類中包含一個(gè)Engine類型的成員變量)啥辨。由上圖我們可以看到,UML中聚合關(guān)系用帶空心菱形和箭頭的直線表示盯腌。聚合關(guān)系強(qiáng)調(diào)是“整體”包含“部分”溉知,但是“部分”可以脫離“整體”而單獨(dú)存在。比如上圖中汽車包含了發(fā)動(dòng)機(jī)腕够,而發(fā)動(dòng)機(jī)脫離了汽車也能單獨(dú)存在级乍。
3、組合關(guān)系
組合關(guān)系與聚合關(guān)系見得最大不同在于:這里的“部分”脫離了“整體”便不復(fù)存在帚湘。比如下圖:
顯然玫荣,嘴是頭的一部分且不能脫離了頭而單獨(dú)存在。在UML類圖中客们,組合關(guān)系用一個(gè)帶實(shí)心菱形和箭頭的直線表示崇决。
4、依賴關(guān)系
從上圖我們可以看到底挫,Driver的drive方法只有傳入了一個(gè)Car對(duì)象才能發(fā)揮作用恒傻,因此我們說Driver類依賴于Car類。在UML類圖中建邓,依賴關(guān)系用一條帶有箭頭的虛線表示盈厘。
5、繼承關(guān)系
繼承關(guān)系對(duì)應(yīng)的是extend關(guān)鍵字官边,在UML類圖中用帶空心三角形的直線表示沸手,如下圖所示中,Student類與Teacher類繼承了Person類注簿。
6契吉、接口實(shí)現(xiàn)關(guān)系
這種關(guān)系對(duì)應(yīng)implement關(guān)鍵字,在UML類圖中用帶空心三角形的虛線表示诡渴。如下圖中捐晶,Car類與Ship類都實(shí)現(xiàn)了Vehicle接口。