統(tǒng)一建模語言UML基礎(chǔ)專題之類圖和對象圖資料_第1頁
統(tǒng)一建模語言UML基礎(chǔ)專題之類圖和對象圖資料_第2頁
統(tǒng)一建模語言UML基礎(chǔ)專題之類圖和對象圖資料_第3頁
統(tǒng)一建模語言UML基礎(chǔ)專題之類圖和對象圖資料_第4頁
統(tǒng)一建模語言UML基礎(chǔ)專題之類圖和對象圖資料_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、統(tǒng)一建模語言UML基礎(chǔ)專題之類圖和對象圖類圖表示不同的實體(人、事物和數(shù)據(jù))如何彼此相關(guān),顯示了系統(tǒng)的靜態(tài)結(jié)構(gòu)。類圖可用于表示邏輯類,邏輯類通常就是業(yè)務(wù)人員所談及的事物種類,比如搖滾樂隊、CD、廣播劇,或者貸款、住房抵押、汽車信貸及利率的抽象描述。類圖還可用于表示實現(xiàn)類,實現(xiàn)類就是程序員要編寫的類。實現(xiàn)類圖與邏輯類圖可能會用來描述一些相同的類。然而,實現(xiàn)類圖與邏輯類圖不會使用相同的描述屬性。類圖是一個分為三個部分的矩形。最上面的部分顯示類的名稱,中間部分顯示類的屬性,最下面的部分顯示類的操作(或者說“方法”)。實際上,最常用、最簡單的類圖就是一個在里面顯示了類名的長方形,因為在UML中,大多數(shù)

2、類只要有一個能夠清楚表達的命名就可以了。在類名部分還可以顯示類的構(gòu)造類型。類的構(gòu)造型顯示在一對雙角括符號“« »”之間,經(jīng)常放在類的名稱上面。常見的構(gòu)造類型包括實現(xiàn)類(直接顯示類名)、接口(在類名上面顯示 «interface»),以及工具類(在類名上面顯示 «utility»)。如果類名用斜體表示,或者在類名下面標上abstract,就表示這個類是一個抽象類。在屬性和方法的前面有一個字符用來表示屬性或方法的作用域,它們的意義如下:“-”表示屬性或方法是私有的(private);“#”表示屬性或方法是保護的(protected);“+

3、”表示屬性或方法是公用的(public)。緊接在屬性或方法的參數(shù)名稱的冒號(:)號之后,顯示了屬性的類型或方法的參數(shù)的類型。方法的返回值類型顯示在方法后面的冒號之后。下圖顯示了一個類Person的類圖,它對應(yīng)的類的C#源代碼如下:Person+name: string+sex: char-age: int+Work(in type: string): void+Person(in name: string, in sex: char, in age: int): void+Speak(): void+Eat(): void類圖示意類圖示意class Personpublic string na

4、me;public char sex;private int age;public Person(string name, char sex, int age)public void Eat()public void Speak()public void Work(string type)對象圖用來表示類的實例化對象。對象圖用一個兩層的矩形來表示,上層標識對象名和類名,下層標識對象的實例化屬性值。下面的代碼將創(chuàng)建一個Person類的對象mary:Person mary = new Person("Mary", 'F', 24);對象mary的對象圖如圖所示:

5、mary: Personname: string ="Mary"sex: char ='F'age: int =24對象圖示例在一個系統(tǒng)中,類之間存在多種關(guān)系,如下所示。 繼承(inheritance):繼承是指一個類從其父類派生而來,繼承了父類的屬性和方法。基于類的繼承叫做一般化(generalization),基于接口的繼承,叫做實現(xiàn)(realization)。 關(guān)聯(lián)(association):類之間的關(guān)聯(lián)大多用來表示變量實例持有對其他對象的引用,這種關(guān)系是半永久的,但沒有包含關(guān)系。 依賴(dependency):依賴是不同類的實例之間的暫時關(guān)系。 聚合

6、(aggregation):聚合是關(guān)聯(lián)的一種特殊形式,它意味著一種整體/部分(whole/part)的關(guān)系,但是部分也可以作為其他整體的組分,而且部分和整體之間也沒有生命期的依賴。 組合(composition):組合是聚合的一種特殊形式,組合的關(guān)聯(lián)性比聚合更強,部分只能作為唯一的一個整體的部分,而且部分的生命周期依賴于整體的生命周期。UML類圖對這些關(guān)系的表示方法如圖6-5所示。具有關(guān)聯(lián)、聚合和組合關(guān)系的兩個對象之間可能是沒有數(shù)量關(guān)系的一種聯(lián)系,也可能存在數(shù)量關(guān)系,比如1對1(不標識)、0個或1個(標識為01)、0個或多個(標識為0*或0n)、1個或多個(標識為1*或1n)或者確切的數(shù)字(直

7、接標識數(shù)字)。圖6-6顯示了一個包含了圖6-2中的對象的類圖。其中包括一個繼承關(guān)系和兩個關(guān)聯(lián)關(guān)系。CDSalesReport類繼承自Report類。一個CDSalesReport類與一個CD類關(guān)聯(lián),但是CD類并不知道關(guān)于CDSalesReport類的任何信息。CD類和Band類都彼此知道對方,兩個類彼此都可以與一個或者多個對方類相關(guān)聯(lián)。UML類圖之間的關(guān)系表示方法包含關(guān)系的類圖下圖顯示了一個包含多種關(guān)系的類圖的另一個例子。Person類實現(xiàn)了IHuman接口,Author類繼承了Person類;Book類與Author類之間的關(guān)聯(lián)是1對多的,即一本書可能有一個或多個作者;Person讀書,這是

8、一種暫時的單向依賴;Book由一個或多個Page組成,每一個Page只能作為一本Book的一部分,這是一種組合關(guān)系;Bookshelf里可以不放或者放多本Book,Book也可以放在其他的Bookshelf中,Bookshelf的存在并不能影響B(tài)ook的存在性,這是一種聚合關(guān)系。一個包含多種關(guān)系的類圖表示各對象之間的關(guān)系的對象圖說明了系統(tǒng)在某一個特定時刻的狀態(tài),經(jīng)常叫做系統(tǒng)的快照(snapshot)。內(nèi)幕:UML與源代碼UML是一種設(shè)計語言,它的目的不是表現(xiàn)細節(jié),而是表現(xiàn)結(jié)構(gòu),僅僅展示必要的細節(jié)。因此,UML不可能與源代碼一一對應(yīng),只存在結(jié)構(gòu)上的對應(yīng)關(guān)系。作為一種參考,下面列出了圖6-7中的類圖的C#源代碼:interface IHumanclass Person : IHumanvoid Read(Book book)/ cl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論