程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> JAVA中的聚集和組合的區別和聯系,java聚集組合區別

JAVA中的聚集和組合的區別和聯系,java聚集組合區別

編輯:JAVA綜合教程

JAVA中的聚集和組合的區別和聯系,java聚集組合區別


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

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

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

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

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

聚集關系通常被表示為聚集類中的一個數據域,如圖:

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

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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved