類圖(class diagram)是UML中使用最多的一種圖。
一個類,它遠看是矩形,近看也是一個矩形,只不過有時候是一個矩形,有時候是2-3個矩形的集合。
一個類,通常會有一些屬性和方法,用類圖表示如下:
這個類圖,由三個矩形組成,由上而下分別是類名,屬性、方法。前面的 (“+”)號表示公開屬性或方法(Public),("-")號表示私人的屬性或方法(Private),而("#")號表示保護(Protected)。
當然,有的為了對類圖進行簡潔,將屬性、方法中的一個或兩個進行隱藏。
類圖,並不是說畫上一個矩形,寫上名稱、屬性和方法就可以了。在實際的軟體系統開發當中,類並不是孤立存在的,類與類之間存在一定的關係。
1.關聯關係:
它是一種結構化關係,用於表示一類對象與另一個類對象之間有關係,例如,學生和老師,子女與父母等等。
例如:剛哥And 雲姐is同學關係
在UML中,關聯關係又包含以下幾種關係:
(1)雙向關聯:指雙方都知道對方的存在,都可以調用對方的公用屬性和方法。實現兩端都不帶箭頭。
例如:的剛哥and 雲姐,就是一種種雙向關聯關係,即雲姐既認識剛哥,剛哥也認識雲姐。
(2)單向關聯:表示一種單方面的相識關係:單向關聯用實現的一頭帶箭頭表示。
例如:剛哥And 比爾蓋茨 ,剛哥認識比爾蓋茨,而比爾蓋茨不知道剛哥的存在。
(3)彙總關係:用一個空心菱形來表示,屬於弱包含。
例如 cpu與computer,如果computer沒有了,Cpu還是可以單獨存在的。
(4)組合關係:用一個實心菱形來表示,屬於強包含,比彙總關係還要強的一種。
例如,最典型的莫過於人和他自己的胳膊,如果一個人都沒有了,那他的胳膊肯定也就消失了,胳膊是不能作為一個單獨的個體來存在的。
PS: 彙總和組合關係都屬於整體與部分的關係
2. 泛化關係:
用於描述一個類是另一個類的類型。就是一種子類繼承父類的屬性與方法的關係。例如:
籃球和足球都屬於球類,都具有球的屬性(圓的)和方法(拍,踢)
例如:籃球
is a 球。這種含有 is a 關係的一般為繼承關係。
3. 依賴關係:是一種使用關係。特定事物的改變有可能會影響到使用該事物的其他事物。
例如,在系統開發當中,如果我們使用了一些公用類,供別的類使用,如果這些公用類出現了問題,那麼調用這些公用類的其他類也會出現問題。在UML中依賴關係如表示:
4.實現關係:指的是對象實現一個介面的關係。例如:小鳥屬於鳥類,它實現了鳥類會飛的這一個介面,所以小鳥也能在空中飛翔。
例如 用UML繪製類圖,一般按照這三個步驟進行:
首先定義出類;其次明確類的屬性和方法;最後分清類與類之間的關係。