UML—類圖,Class

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)可選。

類的符號(hào)
實(shí)例

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)

單向關(guān)聯(lián)用一個(gè)帶箭頭的直線表示。上圖表示每個(gè)顧客都有一個(gè)地址莉兰,這通過讓Customer類持有一個(gè)類型為Address的成員變量來實(shí)現(xiàn)挑围。

b)雙向關(guān)聯(lián)

雙向關(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)

自關(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è)類。

依賴關(guān)系

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)猪钮。

實(shí)例

如果一個(gè)類A(父類)的屬性和操作能被另一個(gè)類B(子類)所繼承,則類B不僅可以包含類A中的屬性和操作胆建,而且還可以添加自己獨(dú)有的屬性和操作烤低,這種機(jī)制就是泛化,泛化也稱之為繼承或派生笆载。

泛化關(guān)系
實(shí)例

多態(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)系的表示方法:帶三角箭頭的虛線,箭頭指向接口(接口的操作為空)咙好。

實(shí)現(xiàn)關(guān)系

8篡腌、總結(jié)

實(shí)例一
實(shí)例二

說明:UML使用*來代表許多,..代表or關(guān)系勾效,如 1..* 代表一個(gè)或多個(gè)嘹悼。


——部分內(nèi)容整理自網(wǎng)絡(luò)——

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市层宫,隨后出現(xiàn)的幾起案子杨伙,更是在濱河造成了極大的恐慌,老刑警劉巖萌腿,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件限匣,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡毁菱,警方通過查閱死者的電腦和手機(jī)米死,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贮庞,“玉大人峦筒,你說我怎么就攤上這事〈吧鳎” “怎么了物喷?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長遮斥。 經(jīng)常有香客問我峦失,道長,這世上最難降的妖魔是什么伏伐? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任宠进,我火速辦了婚禮,結(jié)果婚禮上藐翎,老公的妹妹穿的比我還像新娘材蹬。我一直安慰自己,他們只是感情好吝镣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布堤器。 她就那樣靜靜地躺著,像睡著了一般末贾。 火紅的嫁衣襯著肌膚如雪闸溃。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天拱撵,我揣著相機(jī)與錄音辉川,去河邊找鬼。 笑死拴测,一個(gè)胖子當(dāng)著我的面吹牛乓旗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播集索,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼屿愚,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了务荆?” 一聲冷哼從身側(cè)響起妆距,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎函匕,沒想到半個(gè)月后娱据,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盅惜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年吸耿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酷窥。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咽安,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蓬推,到底是詐尸還是另有隱情妆棒,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布沸伏,位于F島的核電站糕珊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏毅糟。R本人自食惡果不足惜红选,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望姆另。 院中可真熱鬧喇肋,春花似錦坟乾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至间学,卻和暖如春殷费,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背低葫。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國打工详羡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嘿悬。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓实柠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鹊漠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子主到,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 在UML 2.0的13種圖形中,類圖是使用頻率最高的UML圖之一躯概。Martin Fowler在其著作《UML Di...
    雷雷_zll閱讀 13,242評(píng)論 0 14
  • 忘記了uml類圖連線之間的關(guān)系登钥,記錄一下。 1. 關(guān)聯(lián)關(guān)系 關(guān)聯(lián)(Association)關(guān)系是類與類之間最常用的...
    cutieagain閱讀 1,834評(píng)論 0 2
  • 1娶靡、概述 在UML 2.0的13種圖形中牧牢,類圖是使用頻率最高的UML圖之一。Martin Fowler在其著作《U...
    liumw1203閱讀 6,117評(píng)論 0 7
  • 今天搞完電信的卡離吃午飯時(shí)間還早姿锭,洋洋說肚子餓了塔鳍,帶他去買了杯鮮榨果汁喝,果汁是15塊錢呻此,我從錢包里面拿出來一張1...
    王翠英閱讀 172評(píng)論 0 0
  • 第一次讀《小王子》讓我印象深刻的除了小王子的玫瑰和狐貍轮纫,一直讓我念念不忘的就是書中的那個(gè)猴面包樹了,當(dāng)看到猴面包樹...
    南風(fēng)北巷的風(fēng)閱讀 469評(píng)論 0 0