欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入理解JAVA中的聚集和組合的區(qū)別與聯(lián)系

 更新時(shí)間:2016年05月16日 15:29:42   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇深入理解JAVA中的聚集和組合的區(qū)別與聯(lián)系。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧

選自《JAVA語(yǔ)言程序設(shè)計(jì)-基礎(chǔ)篇(原書(shū)第8版)》

定義:一個(gè)對(duì)象可以包含另一個(gè)對(duì)象。這兩個(gè)對(duì)象之間的關(guān)系稱為組合(composition)。

組合實(shí)際上是聚集關(guān)系的一種特殊形式。聚集模擬了具有(has-a)關(guān)系,表示兩個(gè)對(duì)象之間的歸屬關(guān)系。歸屬關(guān)系中的所有者對(duì)象稱為聚集對(duì)象(aggregation object),而它的類(lèi)稱為聚集類(lèi)(aggregating class)。歸屬關(guān)系中的從屬對(duì)象稱為被聚集類(lèi)(aggregated object),而它的類(lèi)被稱為被聚集類(lèi)(aggregated class)。

一個(gè)對(duì)象可以被幾個(gè)其他聚集對(duì)象所擁有。如果一個(gè)對(duì)象只歸屬于一個(gè)聚集對(duì)象,那么它和聚集對(duì)象之間的關(guān)系就稱為組合(composition)。例如:“一個(gè)學(xué)生有一個(gè)名字”就是組合關(guān)系,“一個(gè)學(xué)生有一個(gè)地址”就是聚集關(guān)系,因?yàn)橐粋€(gè)地址可以被幾個(gè)學(xué)生所共享。

UML中,實(shí)心菱形表示組合關(guān)系,空心菱形表示聚集關(guān)系。如圖:

聚集關(guān)系通常被表示為聚集類(lèi)中的一個(gè)數(shù)據(jù)域,如圖:

聚集還可以存在于同一類(lèi)的多個(gè)對(duì)象之間。例如:一個(gè)人可能有一個(gè)管理者或者多個(gè)管理者。一個(gè)管理者可用變量表示,多個(gè)則可使用數(shù)組,如圖:

到這里,基本上聚集和組合的關(guān)系就不言自明了。

以上這篇深入理解JAVA中的聚集和組合的區(qū)別與聯(lián)系就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java工廠模式優(yōu)雅地創(chuàng)建對(duì)象以及提高代碼復(fù)用率和靈活性

    Java工廠模式優(yōu)雅地創(chuàng)建對(duì)象以及提高代碼復(fù)用率和靈活性

    Java工廠模式是一種創(chuàng)建型設(shè)計(jì)模式,通過(guò)定義一個(gè)工廠類(lèi)來(lái)封裝對(duì)象的創(chuàng)建過(guò)程,將對(duì)象的創(chuàng)建和使用分離,提高代碼的可維護(hù)性和可擴(kuò)展性,同時(shí)可以實(shí)現(xiàn)更好的代碼復(fù)用和靈活性
    2023-05-05
  • Spring?Boot?RestController接口輸出到終端的操作代碼

    Spring?Boot?RestController接口輸出到終端的操作代碼

    這篇文章主要介紹了Spring?Boot?RestController接口如何輸出到終端,使用?HttpServletResponse?類(lèi),可以在使用curl執(zhí)行?Spring?Boot?REST接口的同時(shí),在控制臺(tái)輸出一些信息,給運(yùn)維人員知道當(dāng)前命令執(zhí)行的狀態(tài),感興趣的朋友跟隨小編一起看看吧
    2023-09-09
  • Java SiteMesh新手學(xué)習(xí)教程代碼案例

    Java SiteMesh新手學(xué)習(xí)教程代碼案例

    這篇文章主要介紹了Java SiteMesh新手學(xué)習(xí)教程代碼案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • PowerJob UseCacheLock工作流程源碼剖析

    PowerJob UseCacheLock工作流程源碼剖析

    這篇文章主要為大家介紹了PowerJob UseCacheLock工作流程源碼剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • MyBatis insert標(biāo)簽及常用屬性詳解

    MyBatis insert標(biāo)簽及常用屬性詳解

    這篇文章主要介紹了MyBatis insert標(biāo)簽,insert 標(biāo)簽中沒(méi)有 resultType 屬性,只有查詢操作才需要對(duì)返回結(jié)果類(lèi)型進(jìn)行相應(yīng)的指定,需要的朋友可以參考下
    2023-10-10
  • Java 超詳細(xì)講解hashCode方法

    Java 超詳細(xì)講解hashCode方法

    在 Java 應(yīng)用程序執(zhí)行期間,在同一對(duì)象上多次調(diào)用 hashCode 方法時(shí),必須一致地返回相同的整數(shù),前提是對(duì)象上 equals 比較中所用的信息沒(méi)有被修改。從某一應(yīng)用程序的一次執(zhí)行到同一應(yīng)用程序的另一次執(zhí)行,該整數(shù)無(wú)需保持一致
    2022-04-04
  • 利用Java編寫(xiě)個(gè)"不貪吃蛇"小游戲

    利用Java編寫(xiě)個(gè)"不貪吃蛇"小游戲

    貪吃蛇大家一定有玩過(guò)了吧,今天小編給大家?guī)?lái)點(diǎn)不一樣的。本文將用Java編寫(xiě)一個(gè)"不貪吃蛇"小游戲,感興趣的小伙伴可以動(dòng)手嘗試一下
    2022-08-08
  • Java利用POI讀寫(xiě)Excel文件工具類(lèi)

    Java利用POI讀寫(xiě)Excel文件工具類(lèi)

    這篇文章主要為大家詳細(xì)介紹了Java利用POI讀寫(xiě)Excel文件的工具類(lèi),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Java的覆寫(xiě)操作實(shí)例分析

    Java的覆寫(xiě)操作實(shí)例分析

    這篇文章主要介紹了Java的覆寫(xiě)操作,結(jié)合實(shí)例形式分析了java屬性覆寫(xiě)及super調(diào)用父類(lèi)方法覆寫(xiě)相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • Spring?Boot教程之提高開(kāi)發(fā)效率必備工具lombok

    Spring?Boot教程之提高開(kāi)發(fā)效率必備工具lombok

    這篇文章主要介紹了Spring?Boot教程之提高開(kāi)發(fā)效率必備工具lombok的相關(guān)資料,需要的朋友可以參考下
    2022-08-08

最新評(píng)論