java代碼表示聚合關系,聚合關系java代碼實例

JAVA作業求助。

1、依賴關系,uml圖示為虛線加箭頭 A------B, 是一種使用的關系, 即一個類的實現需要另一個類的協助。比用常常寫的工具類就是可以被 其他類使用的

創新互聯是一家專業提供湯陰企業網站建設,專注與成都做網站、網站建設、HTML5、小程序制作等業務。10年已為湯陰眾多企業、政府機構等服務。創新互聯專業網絡公司優惠進行中。

代碼示例: 為訂單生成訂單號碼的服務類,使用Math類產生隨機數

這個時候 OrderService類依賴Math類

OrderService ------ Math

public class OrderService{

public String getOrderNum(){

return Math.random()*1000+"";

}

}

2、關聯關系,分為聚合、組合、及一般關聯 。

組合關系 A◆———B 部分和整體之間具有相同的生命周期,當整體消亡后,部分也將消亡。舉例 人體結構中 人體和大腦之間是一種組合關系, 人體亡了大腦也會死 例子有點沉重哈,但是好理解

代碼示例

Body ◆———Brain

public class Body{

private Brain brain;

public Body(){

this.brain = new Brain();

}

public void think(){

brain.think();

}

}

聚合關系 A◇———B 部分與整體之間并沒有相同的生命周期,整體消亡后部分可以獨立存在。 比如汽車和輪胎, 汽車銷毀了 輪胎可以作為配件 運用到其他汽車上,所以是一種聚合關系。

代碼示例:

Car ◆———Tyre

public class Car{

private Tyre tyre;

public Car(Tyre tyre){

this.tyre= tyre;

}

public void run(){

tyre.run();

}

}

一般關聯:是一種結構化的關系,指一種對象和另一種對象有聯系,給定關聯的兩個類,可以從其中的一個類的對象訪問到另一個類的相關對象。

解釋上很拗口 不如組合 聚合來的清晰明了。可以和依賴關系作個對比,依賴實際上就是 主類依賴其他類的方法 完成部分邏輯,比如工具類的調用等, 但是兩個類之間沒有任何聯系。 而關聯關系 是存在某種聯系的 比如學校和老師,老師和學生,學生和課本 等等, 兩個對象之間是存在某種聯系的。

java示例:

Student ———— Teacher

public class Student{

private Teacher englishTeacher;

public String myEnglishTeacherName(){

return englishTeacher.getName();

}

}

上面的關聯關系,只是描述了 對象和對象之間的聯系,并沒有指明關聯的數量。 比如一個學生是關聯多個老師的(語文老師、數學老師 etc) ,那么這種關聯是一種1對多的關聯 等等,先理解基本的然后再深入比較好

從類的代碼表達來看, 關聯關系(組合、聚合、一般關聯關系) 都是一個類作為另一個類的成員變量來表示, 依賴關系大部分是 一個類作為另一個類的方法參數,或者直接調用被依賴類的靜態方法, 或者直接實例化被依賴類然后調用其方法 等。

理解好了 依賴和關聯 包括集成 實現 等關系及 UML圖示后, 對于 代碼的設計將會有很大幫助

Java 聚集 組合

聚合和組合的區別在于:聚合關系是“has-a”關系,組合關系是“contains-a”關系;聚合關系表示整體與部分的關系比較弱,而組合比較強;聚合關系中代表部分事物的對象與代表聚合事物的對象的生存期無關,一旦刪除了聚合對象不一定就刪除了代表部分事物的對象。組合中一旦刪除了組合對象,同時也就刪除了代表部分事物的對象。

我們用淺顯的例子來說明聚合和組合的區別。“國破家亡”,國滅了,家自然也沒有了,“國”和“家”顯然也是組合關系。而相反的,計算機和它的外設之間就是聚合關系,因為它們之間的關系相對松散,計算機沒了,外設還可以獨立存在,還可以接在別的計算機上。在聚合關系中,部分可以獨立于聚合而存在,部分的所有權也可以由幾個聚合來共享,比如打印機就可以在辦公室內被廣大同事共用。

聚合則一般不是平等的,例如一個公司包含了很多員工,其實現上是差不多的。聚合和組合的區別則在語義和實現上都有差別,組合的兩個對象之間其生命期有很大的關聯,被組合的對象是在組合對象創建的同時或者創建之后創建,在組合對象銷毀之前銷毀。一般來說被組合對象不能脫離組合對象獨立存在,而且也只能屬于一個組合對象,例如一個文檔的版本,必須依賴于文檔的存在,也只能屬于一個文檔。聚合則不一樣,被聚合的對象可以屬于多個聚合對象,例如一個員工可能可以屬于多個公司。

求解:Java中類和類之間的三種關系用代碼舉例

//依賴最常見的是參數關系,如:

public class B{

/***B中的一個方法**/

public void testMethod(A a){

//此時B和A是依賴關系

}

}

//聚合關系通常表現為部分與整體的關系,如:

public class B{

/***B中的一個屬性**/

A a;

}

//泛化關系通常表現為繼承關系,如:

public class B extends A{

}

java怎么理解組合/聚合關系給個例子最好能將細點

聚合(Aggregation)?關系是關聯關系的一種,是強的關聯關系。聚合是整體和個體之間的關系。例如,汽車類與引擎類、輪胎類,以及其它的零件類之間的關系便整體和個體的關系。與關聯關系一樣,聚合關系也是通過實例變量實現的。但是關聯關系所涉及的兩個類是處在同一層次上的,而在聚合關系中,兩個類是處在不平等層次上的,一個代表整體,另一個代表部分。?

組合(Composition)?關系是關聯關系的一種,是比聚合關系強的關系。它要求普通的聚合關系中代表整體的對象負責代表部分對象的生命周期,組合關系是不能共享的。代表整體的對象需要負責保持部分對象和存活,在一些情況下將負責代表部分的對象湮滅掉。代表整體的對象可以將代表部分的對象傳遞給另一個對象,由后者負責此對象的生命周期。換言之,代表部分的對象在每一個時刻只能與一個對象發生組合關系,由后者排他地負責生命周期。部分和整體的生命周期一樣。

class?Driver?{???

//使用成員變量形式實現關聯???

Car?mycar;???

public?void?drive(){???

mycar.run();???

}???

...???

//使用方法參數形式實現關聯???

public?void?drive(Car?car){???

car.run();???

}???

}

聚合關系是是一種比較強的關聯關系,java中一般使用成員變量形式實現。對象之間存在著整體與部分的關系。例如上例中

class?Driver?{???

//使用成員變量形式實現聚合關系???

Car?mycar;???

public?void?drive(){???

mycar.run();???

}???

}

假如給上面代碼賦予如下語義:車是一輛私家車,是司機財產的一部分。則相同的代碼即表示聚合關系了。聚合關系一般使用setter方法給成員變量賦值。?

假如賦予如下語義:車是司機的必須有的財產,要想成為一個司機必須要先有輛車,車要是沒了,司機也不想活了。而且司機要是不干司機了,這個車就砸了,別人誰也別想用。那就表示組合關系了。一般來說,為了表示組合關系,常常會使用構造方法來達到初始化的目的,例如上例中,加上一個以Car為參數的構造方法?

public?Driver(Car?car){???

mycar?=?car;???

}

所以,關聯、聚合、組合只能配合語義,結合上下文才能夠判斷出來,而只給出一段代碼讓我們判斷是關聯,聚合,還是組合關系,則是無法判斷的。

文章名稱:java代碼表示聚合關系,聚合關系java代碼實例
網站鏈接:http://m.kartarina.com/article38/hdpjsp.html

成都網站建設公司_創新互聯,為您提供定制開發定制網站關鍵詞優化商城網站App設計做網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都seo排名網站優化
主站蜘蛛池模板: 日韩精品无码区免费专区 | 亚洲AV无码成人精品区蜜桃| 亚洲国产成人精品无码区在线观看| 日韩毛片无码永久免费看| 一区二区三区无码高清| 日韩人妻无码一区二区三区久久99 | 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲av永久无码天堂网| 日韩成人无码中文字幕| 午夜无码A级毛片免费视频| 亚洲heyzo专区无码综合| 超清无码无卡中文字幕| 秋霞鲁丝片Av无码少妇| 日韩免费无码一区二区视频| 无码午夜成人1000部免费视频| 亚洲AV无码专区在线电影成人| 久久无码精品一区二区三区| 久久久久亚洲av无码专区蜜芽 | 无码一区二区三区在线观看 | 久久亚洲精品成人av无码网站| 亚洲AV成人无码网站| 18禁超污无遮挡无码免费网站| 久久亚洲精品成人无码网站| 亚洲中文字幕无码爆乳av中文| 中文字幕无码高清晰| 国产v亚洲v天堂无码网站| 精品久久久久久无码中文字幕一区| 亚洲av中文无码乱人伦在线咪咕| 精品久久久无码中字| 精品人妻系列无码一区二区三区 | 国产精品无码素人福利| 少妇极品熟妇人妻无码| 免费A级毛片无码A∨| 国产成人AV片无码免费| 国产精品无码免费专区午夜| 无码午夜人妻一区二区不卡视频| 无码精品黑人一区二区三区| 国产精品99无码一区二区| 永久免费av无码网站yy| 亚洲AV无码日韩AV无码导航| 无码人妻精品一区二区|