国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 課堂 > 技術開發 > 正文

類與類關系的UML圖與代碼表現

2023-06-18 12:51:34
字體:
來源:轉載
供稿:網友

一 、一般化關系

二 :

三 :

四 :

五 :

類與類之間的關系對于理解面向對象具有很重要的作用,存在以下關系:

(1)泛化(Generalization) :狗與動物 (空箭頭)

(2)關聯(Association) :公司與員工有特定的某種關系 (實線)

(3)依賴(Dependency) :人依賴螺絲刀 (虛線箭頭)

(4)聚合(Aggregation) : 電腦和CPU,主板 (菱形空間頭)

詳細展開 :

一 .泛化(Generalization)

表示類與類之間的繼承關系,接口與接口之間的繼承關系,或類對接口的實現關系。

一般泛化的關系是從子類指向父類的:

父類 父類實例=new 子類()

1/** *//**
2*  動物類
3*/

4public class Animal{
5
6}
    


 

1/** *//**
2* 老虎類 
3*/

4public class Tiger extends Animal{
5
6}
  

 

1/** *//**
2* 一個測試類
3*/

4public class Demo{    
5    public void test() {
6        //老虎的實例 也屬于動物類型 
7        Animal animal = new Tiger();  
8    }
    
9}
 

二 .依賴(Dependency)

對于兩個相對獨立的對象,當一個對象(螺絲刀)負責構造另一個對象(人)的實例,或者一個對象(人)依賴另一個對象(螺絲刀)的服務時,這兩個對象之間主要體現為依賴關系。

下面這個例子顯然屬于后者 :人要做一個擰螺絲的動作,他就要依賴于 螺絲刀對象,因為只有螺絲刀對象才提供擰螺絲的服務。

 1/** *//**
 2 * 說明 :人 這個 類 
 3 */

 4public class Person {
 5    /** *//**
 6     * 人擁有的一個  擰螺絲  的  動作 依賴于螺絲刀這個類
 7     * @param screwdriver :螺絲刀類
 8     */

 9     public void screw(Screwdriver screwdriver)

10        //螺絲刀類提供了擰螺絲這個服務
11        screwdriver.screw();    
12    }
  
13}

三 .關聯(Association)

對于兩個相對獨立的對象,當一個對象的實例與另一個對象的一些特定實例存在固定的對應關系時,這兩個對象之間為關聯關系。

關聯關系是使用實例變量來實現

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

 1/** *//**
 2 * 公司
 3 */

 4public class Company{   
 5    //員工
 6    private Employee employee;
 7
 8    /** *//**
 9     * 公司運作
10      */

11    public void run()
{    
12        employee.startWorking();    
13    }

14    
15    public Employee getEmployee(){    
16        return employee;    
17    }
    
18    public void setEmployee(Employee employee){    
19        this.employee=employee;    
20    }
  
21

四 : 聚合(Aggregation)

當對象A被加入到對象B中,成為對象B的組成部分時,對象B和對象A之間為聚集關系。聚合是關聯關系的一種,是較強的關聯關系,強調的是整體與部分之間的關系。

[關聯與聚合的區別]

(1)關聯關系所涉及的兩個對象是處在同一個層次上的。比如人和自行車就是一種關聯關系,而不是聚合關系,因為人不是由自行車組成的。
聚合關系涉及的兩個對象處于不平等的層次上,一個代表整體,一個代表部分。比如電腦和它的顯示器、鍵盤、主板以及內存就是聚集關系,因為主板是電腦的組成部分。

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

 1public class Computer{    
 2    private CPU cpu;    
 3    public CPU getCPU()
{    
 4        return cpu;    
 5    }
    
 6    public void setCPU(CPU cpu){    
 7        this.cpu=cpu;    
 8    }
    
 9    //開啟電腦    
10    public void start(){    
11        //cpu運作    
12        cpu.run();    
13    }
    
14}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 无为县| 沈丘县| 邯郸县| 桑日县| 农安县| 新乐市| 云林县| 安远县| 文山县| 南城县| 乌恰县| 沙田区| 个旧市| 沁源县| 屏东市| 体育| 房产| 南溪县| 上饶市| 邯郸市| 泸溪县| 都昌县| 青州市| 河北区| 双峰县| 来安县| 永济市| 南丹县| 肃北| 安义县| 甘洛县| 商都县| 麦盖提县| 新安县| 双峰县| 涿州市| 资溪县| 普定县| 抚顺市| 光山县| 乌兰浩特市|