深入理解JAVA中的聚集和組合的區別與聯絡_java

來源:互聯網
上載者:User

選自《JAVA語言程式設計-基礎篇(原書第8版)》

定義:一個對象可以包含另一個對象。這兩個對象之間的關係稱為組合(composition)。

組合實際上是聚集關係的一種特殊形式。聚集類比了具有(has-a)關係,表示兩個對象之間的歸屬關係。歸屬關係中的所有者對象稱為聚集對象(aggregation object),而它的類稱為聚集類(aggregating class)。歸屬關係中的從屬對象稱為被聚集類(aggregated object),而它的類被稱為被聚集類(aggregated class)。

一個對象可以被幾個其他聚集對象所擁有。如果一個對象只歸屬於一個聚集對象,那麼它和聚集對象之間的關係就稱為組合(composition)。例如:“一個學生有一個名字”就是組合關係,“一個學生有一個地址”就是聚集關係,因為一個地址可以被幾個學生所共用。

UML中,實心菱形表示組合關係,空心菱形表示聚集關係。如圖:

聚集關係通常被表示為聚集類中的一個資料域,如圖:

聚集還可以存在於同一類的多個對象之間。例如:一個人可能有一個管理者或者多個管理者。一個管理者可用變數表示,多個則可使用數組,如圖:

到這裡,基本上聚集和組合的關係就不言自明了。

以上這篇深入理解JAVA中的聚集和組合的區別與聯絡就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援雲棲社區。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.