類關(guān)系圖及實現(xiàn)代碼_第1頁
類關(guān)系圖及實現(xiàn)代碼_第2頁
類關(guān)系圖及實現(xiàn)代碼_第3頁
類關(guān)系圖及實現(xiàn)代碼_第4頁
類關(guān)系圖及實現(xiàn)代碼_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

類關(guān)系圖及代碼一、繼承(泛化)關(guān)系(Generalization)表示類與類之間的繼承關(guān)系,接口與接口之間的繼承關(guān)系,或類對接口的實現(xiàn)關(guān)系。一般化的關(guān)系是從子類指向父類的,與繼承或?qū)崿F(xiàn)的方法相反。class

Animal{}classTigerextendsAnimal{}classDogextendsAnimal{}一、繼承(泛化)關(guān)系(Generalization)在UML當中,對泛化關(guān)系有三個要求:1、子類與父類應(yīng)該完全一致,父類所具有的屬性、操作,子類應(yīng)該都有;2、子類中除了與父類一致的信息以外,還包括額外的信息;3、可以使用父類的實例的地方,也可以使用子類的實例;二、依賴關(guān)系(Dependence)依賴關(guān)系(Dependency)

是一種使用關(guān)系,特定事物的改變有可能會影響到使用該事物的其他事物,在需要表示一個事物使用另一個事物時使用依賴關(guān)系。大多數(shù)情況下,依賴關(guān)系體現(xiàn)在某個類的方法使用另一個類的對象作為參數(shù),或者一個類調(diào)用另一個類的方法。在UML中,依賴關(guān)系用帶箭頭的虛線表示,由依賴的一方指向被依賴的一方。二、依賴關(guān)系(Dependence)publicclassA{

publicvoidAOperation(){ BBObj=newB(); Stringobjname=BObj.BOperation(1); }}PublicclassB{

publicStringBOperation(Integerobjid){

return"ObjectB"; };}二、依賴關(guān)系(Dependence)依賴關(guān)系有如下三種情況:1、A類是B類中的(某中方法的)局部變量;2、A類是B類方法當中的一個參數(shù);3、A類向B類發(fā)送消息,從而影響B(tài)類發(fā)生變化;三、關(guān)聯(lián)關(guān)系(Association)

對于兩個相對獨立的對象,當一個對象的實例與另一個對象的一些特定實例存在固定的對應(yīng)關(guān)系時,這兩個對象之間為關(guān)聯(lián)關(guān)系。

類之間的聯(lián)接,它使一個類知道另一個類的屬性和方法。關(guān)聯(lián)分雙向關(guān)聯(lián)和單向關(guān)聯(lián)。三、關(guān)聯(lián)關(guān)系(Association)

關(guān)聯(lián)兩邊的"employee"和“employer”標示了兩者之間的關(guān)系,而數(shù)字表示兩者的關(guān)系的限制,是關(guān)聯(lián)兩者之間的多重性。通常有“*”(表示所有,不限),“1”(表示有且僅有一個),“0...”(表示0個或者多個),“0,1”(表示0個或者一個),“n...m”(表示n到m個都可以),“m...*”(表示至少m個)。關(guān)聯(lián)關(guān)系(Association)

是類與類之間最常用的一種關(guān)系,它是一種結(jié)構(gòu)化關(guān)系,用于表示一類對象與另一類對象之間有聯(lián)系。在UML類圖中,用實線連接有關(guān)聯(lián)的對象所對應(yīng)的類,在使用Java、C#和C++等編程語言實現(xiàn)關(guān)聯(lián)關(guān)系時,通常將一個類的對象作為另一個類的屬性。在使用類圖表示關(guān)聯(lián)關(guān)系時可以在關(guān)聯(lián)線上標注角色名。三、關(guān)聯(lián)關(guān)系(Association)

publicclassCompany{privateEmployeeemployee;public

Employee

getEmployee(){return

employee;

}

public

void

setEmployee(Employee

employee){this.employee=employee;}

//公司運作

public

void

run(){

employee.startWorking();}}三、關(guān)聯(lián)關(guān)系(Association)

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

class

Customer

{

private

Product[]

products;

……

}

public

class

Product

{

private

Customer

customer;

……

}

三、關(guān)聯(lián)關(guān)系(Association)

單向關(guān)聯(lián)public

class

Customer

{

private

Address

address;

……

}

public

class

Address

{

……

}

四、聚合關(guān)系(Aggregation)聚合關(guān)系(Aggregation)

表示一個整體與部分的關(guān)系。通常在定義一個整體類后,再去分析這個整體類的組成結(jié)構(gòu),從而找出一些成員類,該整體類和成員類之間就形成了聚合

關(guān)系。在聚合關(guān)系中,成員類是整體類的一部分,即成員對象是整體對象的一部分,但是成員對象可以脫離整體對象獨立存在。在UML中,聚合關(guān)系用帶空心菱形的直線表示。

當對象A被加入到對象B中,成為對象B的組成部分時,對象B和對象A之間為聚集關(guān)系。聚合是關(guān)聯(lián)關(guān)系的一種,是較強的關(guān)聯(lián)關(guān)系,強調(diào)的是整體與部分之間的關(guān)系。四、聚合關(guān)系0..1表示一個Class_10對象最多關(guān)聯(lián)1個Class_9對象;

0..n表示一個Class_9對象關(guān)聯(lián)任意個Class_10對象.public

class

Computer{private

CPU

cpu;

privateMemorymemory;

privateHHDhhd;publicCPUgetCPU(){return

cpu;}publicvoidsetCPU(CPU

cpu){this.cpu=cpu;}

publicMemorygetMemory(){

returnmemory;

}

publicMemorysetMemory(Memorymem){

this.memory=mem;

}publicHHDgetHHD(){return

hhd;}publicvoidsetHHD(HHD

hhd){this.hhd=hhd;}

//開啟電腦

public

void

start(){//cpu運作cpu.run();}}關(guān)聯(lián)與聚合的區(qū)別(1)關(guān)聯(lián)關(guān)系所涉及的兩個對象是處在同一個層次上的。比如人和自行車就是一種關(guān)聯(lián)關(guān)系,而不是聚合關(guān)系,因為人不是由自行車組成的。

聚合關(guān)系涉及的兩個對象處于不平等的層次上,一個代表整體,一個代表部分。比如電腦和它的顯示器、鍵盤、主板以及內(nèi)存就是聚集關(guān)系,因為主板是電腦的組成部分。(2)對于具有聚集關(guān)系(尤其是強聚集關(guān)系)的兩個對象,整體對象會制約它的組成對象的生命周期。部分類的對象不能單獨存在,它的生命周期依賴于整體類的對象的生命周期,當整體消失,部分也就隨之消失。比如張三的電腦被偷了,那么電腦的所有組件也不存在了,除非張三事先把一些電腦的組件(比如硬盤和內(nèi)存)拆了下來。五、組合關(guān)系(Composition)組合關(guān)系(Composition)也表示類之間整體和部分的關(guān)系,但是組合關(guān)系中部分和整體具有統(tǒng)一的生存期。一旦整體對象不存在,部分對象也將不存在,部分對象與整體對象之間具有同生共死的關(guān)系。在組合關(guān)系中,成員類是整體類的一部分,而且整體類可以控制成員類的生命周期,即成員類的存在依賴于整體類。在UML中,組合關(guān)系用帶實心菱形的直線表示

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論