類與類之間的關係

2022-02-16 23:21:38 字數 2321 閱讀 1959

類與類之間的關係對於理解物件導向具有很重要的作用,以前在面試的時候也經常被問到這個問題,在這裡我就介紹一下。

類與類之間存在以下關係:         

(1)泛化(generalization)          (2)關聯  (association)                       (3)依賴(dependency)          (4)聚合(aggregation)

uml 圖與應用**例子:

表示類與類之間的繼承關係,介面與介面之間的繼承關係,或類對介面的實現關係。一般化

的關係是從子類指向父類的,與繼承或實現的方法相反。

[具體表現]

父類父類例項=new 子類() [uml 圖](圖 1.1)

圖 1.1 animal 類與 tiger 類,dog類的泛化關係

[**表現]

1. 

class

animal{}

2. 

classtiger extends

animal{}

3. 

public class test 4.

9. }

對於兩個相對獨立的物件,當乙個物件負責構造另乙個物件的例項,或者依賴另乙個物件的

服務時,這兩個物件之間主要體現為依賴關係。

[具體表現] 依賴關係表現在區域性變數,方法的引數,以及對靜態方法的呼叫 [現實例子]

比如說你要去擰螺絲,你是不是要借助(也就是依賴)螺絲刀(screwdriver)來幫助你完成擰 螺絲(screw)的工作

[uml 表現](圖 1.2)

圖 1.2 person 類與 screwdriver 類的依賴關係 

[**表現]

1. public class person

6. }

對於兩個相對獨立的物件,當乙個物件的例項與另乙個物件的一些特定例項存在固定的對應 關係時,這兩個物件之間為關聯關係。

[具體表現] 關聯關係是使用例項變數來實現 [現實例子]

比如客戶和訂單,每個訂單對應特定的客戶,每個客戶對應一些特定的訂單;再例如公司和

員工,每個公司對應一些特定的員工,每個員工對應一特定的公司

[uml 圖] (圖 1.3)

圖 1.3 公司和員工的關聯關係

[**表現]

1. 

publicclass company

6.             

public void setemployee(employee

employee)

9.         //公司運作

10.           

public void

run()

13. }

當物件 a 被加入到物件b 中,成為物件 b 的組成部分時,物件 b 和物件 a 之間為聚集關係。聚合是關聯關係的一種,是較強的關聯關係,強調的是整體與部分之間的關係。

[具體表現]

與關聯關係一樣,聚合關係也是通過例項變數來實現這樣關係的。關聯關係和聚合關係來語

法上是沒辦法區分的,從語義上才能更好的區分兩者的區別。

[關聯與聚合的區別]

(1)關聯關係所涉及的兩個物件是處在同乙個層次上的。比如人和自行車就是一種關聯關係,而不是聚合關係,因為人不是由自行車組成的。

聚合關係涉及的兩個物件處於不平等的層次上,乙個代表整體,乙個代表部分。比如電腦和

它的顯示器、鍵盤、主機板以及記憶體就是聚集關係,因為主機板是電腦的組成部分。

(2)對於具有聚集關係(尤其是強聚集關係)的兩個物件,整體物件會制約它的組成物件的 生命週期。部分類的物件不能單獨存在,它的生命週期依賴於整體類的物件的生命週期,當整體消失,部分也就隨之消失。比如張三的電腦被偷了,那麼電腦的所有元件也不存在了, 除非張三事先把一些電腦的元件(比如硬碟和記憶體)拆了下來。

[uml 圖](圖 1.4)

圖 1.3 電腦和元件的聚合關係

[**表現]

1. public class

computer

6.             

public void setcpu(cpu

cpu)

9.         //開啟電腦

10.        publicvoid start()

類與類之間的關係

uml uml是統一建模語言 為軟體開發提供一些標準的圖例,統一開發思想,從而促進團隊協作 在軟體過程中,會用到uml 分析 設計 編碼 測試 維護 主流的有 rup rational unified process 合理的統一過程 強調軟體開發一開始就要有好的設計 才能有好的設計 xp程式設計 e...

類與類之間的關係

1.在乙個類中將被聚合元素作為其屬性 如果所有類都會用到乙個類的物件,則把它作為屬性 在任何方法的任何類,都可以建立物件 package 聚合 public class car public static void main string args package 聚合 public class w...

類與類之間的關係

泛化 繼承 指的是乙個類 稱為子類 子介面 繼承另外乙個類 稱為父類 父介面 的功能。在uml類圖設計中,泛化 繼承 使用一條帶空心的三角箭頭的實線表示,從子類指向父類,或者是從子介面指向父介面。示例 public class father class sonextends father 實現 實現...