0.)
繼承、實(shí)現(xiàn)是三角型箭頭凸主,其他都為箭頭
組合橘券、聚合都有一個(gè)菱形端,且都為實(shí)線卿吐,其他都無菱形端
組合的菱形為實(shí)心旁舰,聚合的菱形為空心
繼承是實(shí)線,實(shí)現(xiàn)是虛線
關(guān)聯(lián)是實(shí)線 依賴是虛線
1.)類成員屬性與類函數(shù)訪問修飾在UML是符號(hào)表示方法如下:
'+' :表示訪問修飾符-public
'#' :表示訪問修飾符-protected
'-' :表示訪問修飾符-private
2.)類的成員屬性表示方式
3.)類函數(shù)表示方式
4.)類與類之間關(guān)系表示方式
4.1)單向關(guān)聯(lián)
我們可以看到嗡官,在UML類圖中單向關(guān)聯(lián)用一個(gè)帶箭頭的直線表示箭窜。上圖表示每個(gè)顧客都有一個(gè)地址,這通過讓Customer類持有一個(gè)類型為Address的成員變量來實(shí)現(xiàn)衍腥。
4.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)買尚骄。
4.4)自關(guān)聯(lián)
自關(guān)聯(lián)在UML類圖中用一個(gè)帶有箭頭且指向自身的直線表示块差。上圖的意思就是Node類包含類型為Node的成員變量,也就是“自己包含自己”。
4.5.)聚合關(guān)系(Aggregation)
表示的是整體和部分的關(guān)系憨闰,且 整體與局部可以分開状蜗,表示 has-a 的關(guān)系。在UML中鹉动,聚合關(guān)系用帶空心菱形的直線表示:
4.6)組合關(guān)系(Composition)
組合關(guān)系與聚合關(guān)系間的最大不同在于:這里的“部分”脫離了“整體”便不復(fù)存在轧坎,表示 contains-a 的關(guān)系。
顯然训裆,嘴是頭的一部分且不能脫離了頭而單獨(dú)存在。
在UML中蜀铲,組合關(guān)系用帶實(shí)心菱形的直線表示边琉。
4.7.)依賴關(guān)系
從上圖中我們可以看到,Driver的drive方法只有傳入了一個(gè)Car對(duì)象才能發(fā)揮作用记劝,因此我們說Driver類依賴于Car類变姨。在UML類圖中,依賴關(guān)系用一條帶有箭頭的虛線表示厌丑。
4.8.)繼承關(guān)系
泛化關(guān)系在Java中也叫作繼承關(guān)系定欧,在UML中我們用帶空心三角形的直線來表示,繼承關(guān)系對(duì)應(yīng)的是extend關(guān)鍵字怒竿,在UML類圖中用帶空心三角形的直線表示砍鸠,如下圖所示中,Student類與Teacher類繼承了Person類耕驰。
4.9.)接口實(shí)現(xiàn)關(guān)系
這種關(guān)系對(duì)應(yīng)implements關(guān)鍵字爷辱,比如下圖中,Car類與Ship類都實(shí)現(xiàn)了Vehicle接口朦肘。