1、概念
類圖是描述類克锣、接口以及它們之間關(guān)系的圖茵肃,它顯示了系統(tǒng)中各個(gè)類的靜態(tài)結(jié)構(gòu),是一種靜態(tài)模型袭祟。
2验残、什么是類?
類是具有相同屬性和行為的對(duì)象集合巾乳。比如”人類“就是一個(gè)類您没,那么具體的某個(gè)人”張三“就是”人類“這個(gè)類的對(duì)象,而”名字胆绊、年齡“等信息就是對(duì)象的屬性氨鹏,人的動(dòng)作比如”吃飯、穿衣压状、睡覺“等就是對(duì)象的操作仆抵。總之類就是有相同特征的事物集合种冬,而對(duì)象就是類的一個(gè)具體實(shí)例镣丑。同時(shí)類有多態(tài)和繼承,例如”人類“可以分為”男人娱两、女人“莺匠。
在UML類圖中,類使用包含類名十兢、屬性(field)和方法(method)且?guī)в蟹指艟€的矩形來表示趣竣。
屬性的表示方式:可見性 名稱:類型[ = 缺省值 ],中括號(hào)可選旱物。
方法(也叫操作)的表示方式:可見性 名稱(參數(shù)列表) [ : 返回類型]遥缕,中括號(hào)可選。
3异袄、類的屬性
類的屬性有可見性:public(公有)通砍、private(私有)玛臂、Protected(保護(hù))和數(shù)據(jù)類型:int烤蜕、char、string迹冤、float讽营、bool...
4、關(guān)聯(lián)關(guān)系(聚合泡徙、組合)
關(guān)聯(lián)用來表示兩個(gè)或多個(gè)類的對(duì)象之間的結(jié)構(gòu)關(guān)系橱鹏,它在代碼中表現(xiàn)為一個(gè)類以屬性的形式包含對(duì)另一個(gè)類的一個(gè)或多個(gè)對(duì)象的應(yīng)用。
a)單向關(guān)聯(lián)
單向關(guān)聯(lián)用一個(gè)帶箭頭的直線表示。上圖表示每個(gè)顧客都有一個(gè)地址莉兰,這通過讓Customer類持有一個(gè)類型為Address的成員變量來實(shí)現(xiàn)挑围。
b)雙向關(guān)聯(lián)
雙向關(guān)聯(lián)就是雙方各自持有對(duì)方類型的成員變量,用一個(gè)不帶箭頭的直線來表示糖荒。上圖中在Customer類中維護(hù)一個(gè)Product[]數(shù)組表示一個(gè)顧客購買了哪些產(chǎn)品杉辙;在Product類中維護(hù)一個(gè)Customer類型的成員變量表示這個(gè)產(chǎn)品被那個(gè)顧客所購買。
c)自關(guān)聯(lián)
用一個(gè)帶有箭頭且指向自身的直線表示捶朵。上圖的意思就是Node類包含類型為Node的成員變量蜘矢,也就是“自己包含自己”。
聚合與組合是兩種特殊的關(guān)聯(lián)關(guān)系综看。
d)聚合
用帶空心菱形和箭頭的直線表示品腹。聚合關(guān)系強(qiáng)調(diào)是“整體”包含“部分”,但是“部分”可以脫離“整體”而單獨(dú)存在红碑。比如上圖中汽車包含了發(fā)動(dòng)機(jī)舞吭,而發(fā)動(dòng)機(jī)脫離了汽車也能夠單獨(dú)存在。
e)組合
組合關(guān)系與聚合關(guān)系間的最大不同在于:這里的“部分”脫離了“整體”便不復(fù)存在析珊。顯然镣典,嘴是頭的一部分且不能脫離了頭而單獨(dú)存在。在UML類圖中唾琼,組合關(guān)系用一個(gè)帶實(shí)心菱形和箭頭的直線表示兄春。
5、依賴關(guān)系
依賴表示一個(gè)類以某種形式依賴于其他類锡溯。當(dāng)兩個(gè)類處于依賴關(guān)系中時(shí)赶舆,其中一個(gè)類的改變可能會(huì)影響另一個(gè)類。
Driver的drive方法只有傳入了一個(gè)Car對(duì)象才能發(fā)揮作用祭饭,因此我們說Driver類依賴于Car類芜茵。在UML類圖中,依賴關(guān)系用一條帶有箭頭的虛線表示倡蝙。
6九串、泛化關(guān)系
在現(xiàn)實(shí)生活中,有時(shí)會(huì)出現(xiàn)一類事物具有另一類事物的全部特點(diǎn)寺鸥,除此之外還有自身的特點(diǎn)猪钮。
如果一個(gè)類A(父類)的屬性和操作能被另一個(gè)類B(子類)所繼承,則類B不僅可以包含類A中的屬性和操作胆建,而且還可以添加自己獨(dú)有的屬性和操作烤低,這種機(jī)制就是泛化,泛化也稱之為繼承或派生笆载。
多態(tài)性:在泛化關(guān)系中扑馁,父類所定義的操作被子類繼承之后涯呻,可以表現(xiàn)出不同的行為。多態(tài)性允許在(有繼承關(guān)系的)多個(gè)類中定義同名的操作腻要,并在每一個(gè)類中有不同的實(shí)現(xiàn)复罐。
7、實(shí)現(xiàn)關(guān)系
接口是一組沒有實(shí)現(xiàn)的操作的集合雄家。接口只提供操作的聲明市栗,不提供任何相應(yīng)的功能代碼。具體的功能代碼由使用該接口的類實(shí)現(xiàn)咳短,這叫做實(shí)現(xiàn)關(guān)系填帽。
實(shí)現(xiàn)關(guān)系的表示方法:帶三角箭頭的虛線,箭頭指向接口(接口的操作為空)咙好。
8篡腌、總結(jié)
說明:UML使用*來代表許多,..代表or關(guān)系勾效,如 1..* 代表一個(gè)或多個(gè)嘹悼。
——部分內(nèi)容整理自網(wǎng)絡(luò)——