日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

类和类之间的关系

發(fā)布時間:2023/12/4 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 类和类之间的关系 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、類和類之間的關系

UML類圖中,常見以下幾種關系:

1、泛化(Generalization)

?是一種繼承關系,比如動物類和老虎類,老虎繼承動物,子類如何特化父類的所有特征和行為

?箭頭指向:帶三角箭頭的實線,箭頭指向父類

?我們使用類圖如下

代碼表示如下

Class Animal {} Class Tiger extends Animal {}

?

?

?

2、實現(xiàn)(Realization)

?類與接口的關系,類是接口所有特征和行為的實現(xiàn)

?箭頭指向:帶三角箭頭的虛線,箭頭指向接口

?我們使用類圖如下

? 代碼表示如下

interface A {} class B implement A {}

?

?

?

3、關聯(lián)(Association)

是一種擁有(has)的關系,一個類的成員變量是另一個類的實例對象,可以雙向的也可以是單向

箭頭指向:帶普通箭頭的實心線,指向被擁有者?

類圖如下,表示A類關聯(lián)B類

代碼表示如下

class B {} class A {private B b; }

?

?

?

4、依賴(Dependency)

是一種使用(use)的關系,即一個類的實現(xiàn)需要另一個類的協(xié)助,一般不使用雙向的互相依賴.

箭頭及指向:帶箭頭的虛線,指向被使用者

類圖如下,這里表示A依賴于B

? ?但是這里需要注意,依賴一般可以通過形式參數(shù)、局部變量、靜態(tài)方法的調用、返回值來表示

  • 形式參數(shù)代碼如下 class B {} class A {public A() {}public void method(B b) {} }
  • 局部變量代碼如下,一般指方法里面的局部變量 class B {} class A {public A() {}public void method() {B b = new B();} }
  • 靜態(tài)方法的調用代碼如下 class B {public static void staticMethod() {} } class A {public A() {}public void method() {B.staticMethod();} }
  • 返回值代碼如下 class B {} class A {public A() {}public B method() {return null;} }

?

5、聚合(Aggregation)

?整體與部分的關系,表示聚合在一起,部分可以離開整體而單獨存在,車和輪胎是整體和部分的關系,輪胎離開車仍然可以存在。

聚合關系是關聯(lián)關系的一種,是強的關聯(lián)關系,關聯(lián)和聚合在語法一樣,須考察具體的邏輯關系。

箭頭及指向:帶空心菱形的實心線,菱形指向整體

代碼實現(xiàn)和上面的關聯(lián)是一樣的。

?

?

6、組合(Composition)

是整體與部分的關系,但部分不能離開整體而單獨存,比如人的肺和人體,肺不能離開人單獨存在,有人肺在人體才能存活

箭頭指向:帶實心菱形的實線,菱形指向整體

組合關系是關聯(lián)關系的一種,是比聚合關系還要強的關系

類圖如下

代碼實現(xiàn)和上面的關聯(lián)是一樣的。

?

?

?

二、依賴和關聯(lián)之間的區(qū)別

關聯(lián)是“HAS”關系,依賴是“USE”關系
A類關聯(lián)B類,指的是B類對象作為A類的屬性存在,稱為“has”關系。
A類依賴B類,指的是B的對象作為A類的方法形式參數(shù)存在,稱為“use”關系。一般也包括函數(shù)參數(shù)、局部變量、返回值類型和靜態(tài)方法調用這四種場景。
生命周期不同
如果A類關聯(lián)B類,那么創(chuàng)建A類的對象時實例化B類的對象,直到A類對象被銷毀,所關聯(lián)的B類對象也被銷毀。即只要A類對象存在,B類對象就存在。
如果A類依賴B類,那么只有當A類對象調用到相應方法時,B類對象才被臨時創(chuàng)建,方法執(zhí)行結束,B類對象即被回收,A類和B類之間的依賴關系是一種瞬時的關系。

?

?

三、關聯(lián)和組合和聚合之間的關系

組合和聚合都是關聯(lián)關系的一種,只不夠 組合 > 聚合 > 關聯(lián)

?

?

?

?

四、各種關系的強弱順序

依賴 <?關聯(lián) <?聚合 <?組合 <??實現(xiàn) =?泛化(繼承)

?

?

總結

以上是生活随笔為你收集整理的类和类之间的关系的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。