版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
類(lèi)關(guān)系圖及代碼一、繼承(泛化)關(guān)系(Generalization)表示類(lèi)與類(lèi)之間的繼承關(guān)系,接口與接口之間的繼承關(guān)系,或類(lèi)對(duì)接口的實(shí)現(xiàn)關(guān)系。一般化的關(guān)系是從子類(lèi)指向父類(lèi)的,與繼承或?qū)崿F(xiàn)的方法相反。class
Animal{}classTigerextendsAnimal{}classDogextendsAnimal{}一、繼承(泛化)關(guān)系(Generalization)在UML當(dāng)中,對(duì)泛化關(guān)系有三個(gè)要求:1、子類(lèi)與父類(lèi)應(yīng)該完全一致,父類(lèi)所具有的屬性、操作,子類(lèi)應(yīng)該都有;2、子類(lèi)中除了與父類(lèi)一致的信息以外,還包括額外的信息;3、可以使用父類(lèi)的實(shí)例的地方,也可以使用子類(lèi)的實(shí)例;二、依賴(lài)關(guān)系(Dependence)依賴(lài)關(guān)系(Dependency)
是一種使用關(guān)系,特定事物的改變有可能會(huì)影響到使用該事物的其他事物,在需要表示一個(gè)事物使用另一個(gè)事物時(shí)使用依賴(lài)關(guān)系。大多數(shù)情況下,依賴(lài)關(guān)系體現(xiàn)在某個(gè)類(lèi)的方法使用另一個(gè)類(lèi)的對(duì)象作為參數(shù),或者一個(gè)類(lèi)調(diào)用另一個(gè)類(lèi)的方法。在UML中,依賴(lài)關(guān)系用帶箭頭的虛線(xiàn)表示,由依賴(lài)的一方指向被依賴(lài)的一方。二、依賴(lài)關(guān)系(Dependence)publicclassA{
publicvoidAOperation(){ BBObj=newB(); Stringobjname=BObj.BOperation(1); }}PublicclassB{
publicStringBOperation(Integerobjid){
return"ObjectB"; };}二、依賴(lài)關(guān)系(Dependence)依賴(lài)關(guān)系有如下三種情況:1、A類(lèi)是B類(lèi)中的(某中方法的)局部變量;2、A類(lèi)是B類(lèi)方法當(dāng)中的一個(gè)參數(shù);3、A類(lèi)向B類(lèi)發(fā)送消息,從而影響B(tài)類(lèi)發(fā)生變化;三、關(guān)聯(lián)關(guān)系(Association)
對(duì)于兩個(gè)相對(duì)獨(dú)立的對(duì)象,當(dāng)一個(gè)對(duì)象的實(shí)例與另一個(gè)對(duì)象的一些特定實(shí)例存在固定的對(duì)應(yīng)關(guān)系時(shí),這兩個(gè)對(duì)象之間為關(guān)聯(lián)關(guān)系。
類(lèi)之間的聯(lián)接,它使一個(gè)類(lèi)知道另一個(gè)類(lèi)的屬性和方法。關(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”標(biāo)示了兩者之間的關(guān)系,而數(shù)字表示兩者的關(guān)系的限制,是關(guān)聯(lián)兩者之間的多重性。通常有“*”(表示所有,不限),“1”(表示有且僅有一個(gè)),“0...”(表示0個(gè)或者多個(gè)),“0,1”(表示0個(gè)或者一個(gè)),“n...m”(表示n到m個(gè)都可以),“m...*”(表示至少m個(gè))。關(guān)聯(lián)關(guān)系(Association)
是類(lèi)與類(lèi)之間最常用的一種關(guān)系,它是一種結(jié)構(gòu)化關(guān)系,用于表示一類(lèi)對(duì)象與另一類(lèi)對(duì)象之間有聯(lián)系。在UML類(lèi)圖中,用實(shí)線(xiàn)連接有關(guān)聯(lián)的對(duì)象所對(duì)應(yīng)的類(lèi),在使用Java、C#和C++等編程語(yǔ)言實(shí)現(xiàn)關(guān)聯(lián)關(guān)系時(shí),通常將一個(gè)類(lèi)的對(duì)象作為另一個(gè)類(lèi)的屬性。在使用類(lèi)圖表示關(guān)聯(lián)關(guān)系時(shí)可以在關(guān)聯(lián)線(xiàn)上標(biāo)注角色名。三、關(guān)聯(lián)關(guān)系(Association)
publicclassCompany{privateEmployeeemployee;public
Employee
getEmployee(){return
employee;
}
public
void
setEmployee(Employee
employee){this.employee=employee;}
//公司運(yùn)作
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)
表示一個(gè)整體與部分的關(guān)系。通常在定義一個(gè)整體類(lèi)后,再去分析這個(gè)整體類(lèi)的組成結(jié)構(gòu),從而找出一些成員類(lèi),該整體類(lèi)和成員類(lèi)之間就形成了聚合
關(guān)系。在聚合關(guān)系中,成員類(lèi)是整體類(lèi)的一部分,即成員對(duì)象是整體對(duì)象的一部分,但是成員對(duì)象可以脫離整體對(duì)象獨(dú)立存在。在UML中,聚合關(guān)系用帶空心菱形的直線(xiàn)表示。
當(dāng)對(duì)象A被加入到對(duì)象B中,成為對(duì)象B的組成部分時(shí),對(duì)象B和對(duì)象A之間為聚集關(guān)系。聚合是關(guān)聯(lián)關(guān)系的一種,是較強(qiáng)的關(guān)聯(lián)關(guān)系,強(qiáng)調(diào)的是整體與部分之間的關(guān)系。四、聚合關(guān)系0..1表示一個(gè)Class_10對(duì)象最多關(guān)聯(lián)1個(gè)Class_9對(duì)象;
0..n表示一個(gè)Class_9對(duì)象關(guān)聯(lián)任意個(gè)Class_10對(duì)象.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;}
//開(kāi)啟電腦
public
void
start(){//cpu運(yùn)作cpu.run();}}關(guān)聯(lián)與聚合的區(qū)別(1)關(guān)聯(lián)關(guān)系所涉及的兩個(gè)對(duì)象是處在同一個(gè)層次上的。比如人和自行車(chē)就是一種關(guān)聯(lián)關(guān)系,而不是聚合關(guān)系,因?yàn)槿瞬皇怯勺孕熊?chē)組成的。
聚合關(guān)系涉及的兩個(gè)對(duì)象處于不平等的層次上,一個(gè)代表整體,一個(gè)代表部分。比如電腦和它的顯示器、鍵盤(pán)、主板以及內(nèi)存就是聚集關(guān)系,因?yàn)橹靼迨请娔X的組成部分。(2)對(duì)于具有聚集關(guān)系(尤其是強(qiáng)聚集關(guān)系)的兩個(gè)對(duì)象,整體對(duì)象會(huì)制約它的組成對(duì)象的生命周期。部分類(lèi)的對(duì)象不能單獨(dú)存在,它的生命周期依賴(lài)于整體類(lèi)的對(duì)象的生命周期,當(dāng)整體消失,部分也就隨之消失。比如張三的電腦被偷了,那么電腦的所有組件也不存在了,除非張三事先把一些電腦的組件(比如硬盤(pán)和內(nèi)存)拆了下來(lái)。五、組合關(guān)系(Composition)組合關(guān)系(Composition)也表示類(lèi)之間整體和部分的關(guān)系,但是組合關(guān)系中部分和整體具有統(tǒng)一的生存期。一旦整體對(duì)象不存在,部分對(duì)象也將不存在,部分對(duì)象與整體對(duì)象之間具有同生共死的關(guān)系。在組合關(guān)系中,成員類(lèi)是整體類(lèi)的一部分,而且整體類(lèi)可以控制成員類(lèi)的生命周期,即成員類(lèi)的存在依賴(lài)于整體類(lèi)。在UML中,組合關(guān)系用帶實(shí)心菱形的直線(xiàn)表示
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025英國(guó)醫(yī)藥研發(fā)行業(yè)市場(chǎng)供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025航運(yùn)行業(yè)市場(chǎng)現(xiàn)狀分析及全球物流投資評(píng)估規(guī)劃研究
- 中班社會(huì)活動(dòng)方案設(shè)計(jì)與實(shí)施反思
- 合同審批流程電子化實(shí)施指南
- 2025福建漳州薌城教育投資有限公司下屬子公司招聘13人筆試備考重點(diǎn)試題及答案解析
- 2025年長(zhǎng)白朝鮮族自治縣統(tǒng)計(jì)局公開(kāi)招聘合同制普查工作人員(5人)筆試備考重點(diǎn)試題及答案解析
- 2025年國(guó)藥(陜西)中醫(yī)藥健康產(chǎn)業(yè)有限公司退役軍人招聘(3人)備考考試題庫(kù)及答案解析
- 2025重慶醫(yī)科大學(xué)附屬第一醫(yī)院招聘53人備考考試題庫(kù)及答案解析
- 細(xì)胞呼吸的原理和應(yīng)用教學(xué)高一生物人教版必修教案
- 公開(kāi)課語(yǔ)文版初中語(yǔ)文八下桃花源記教案
- 電梯形式檢測(cè)報(bào)告
- 脫硝催化劑拆除及安裝(四措兩案)
- GB/T 19867.6-2016激光-電弧復(fù)合焊接工藝規(guī)程
- 第八章散糧裝卸工藝
- PET-成像原理掃描模式和圖像分析-課件
- 體外診斷試劑工作程序-全套
- 施工企業(yè)管理課件
- 《大衛(wèi)-不可以》繪本
- DB32 4181-2021 行政執(zhí)法案卷制作及評(píng)查規(guī)范
- JJF (蘇) 178-2015 防潮柜溫度、濕度校準(zhǔn)規(guī)范-(現(xiàn)行有效)
- 創(chuàng)傷急救四大技術(shù)共46張課件
評(píng)論
0/150
提交評(píng)論