精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

利用UML(圖)表示類之間的6種關系

jf_78858299 ? 來源:技術工作筆記 ? 作者:HarmonySpring ? 2023-05-05 10:18 ? 次閱讀

java以及其他的面向對象設計模式中,類與類之間主要有6種關系,他們分別是:依賴、關聯、聚合、組合、繼承、實現。他們的耦合度依次增強

1. 依賴(Dependence)

圖片

依賴關系的定義為:對于兩個相對獨立的對象,當一個對象負責構造另一個對象的實例,或者依賴另一個對象的服務時,這兩個對象之間主要體現為依賴關系。定義比較晦澀難懂,但在java中的表現還是比較直觀的:類A當中使用了類B,其中類B是作為類A的方法參數、方法中的局部變量、或者靜態方法調用。類上面的圖例中:People類依賴于Book類和Food類,Book類和Food類是作為類中方法的參數形式出現在People類中的。

public class People{   
    //Book作為read方法的形參   
     public void read(Book book){   
        System.out.println(“讀的書是”+book.getName());   
    }   
}

2.關聯(Association)圖片圖片圖片

單向關聯:

圖片

雙向關聯:

圖片

對于兩個相對獨立的對象,當一個對象的實例與另一個對象的一些特定實例存在固定的對應關系時,這兩個對象之間為關聯關系。關聯關系分為單向關聯和雙向關聯。在java中,單向關聯表現為:類A當中使用了類B,其中類B是作為類A的成員變量。雙向關聯表現為:類A當中使用了類B作為成員變量;同時類B中也使用了類A作為成員變量。

public class Son{
   //關聯關系中作為成員變量的類一般會在類中賦值
    Father father = new Father();
    public void getGift(){
        System.out.println(“從”+father.getName()+”獲得禮物”);
    }
}

public class Father{
    Son son = new Son();
    public void giveGift(){
        System.out.println(“送給”+son.getName()+“禮物”);
    }
}

3.聚合(Aggregation)圖片

圖片

聚合關系是關聯關系的一種,耦合度強于關聯,他們的代碼表現是相同的,僅僅是在語義上有所區別:關聯關系的對象間是相互獨立的,而聚合關系的對象之間存在著包容關系,他們之間是“整體-個體”的相互關系。

public class People{
    Car car;
    House house; 
    //聚合關系中作為成員變量的類一般使用set方法賦值
     public void setCar(Car car){
        This.car = car;
    }
    public void setHouse(House house){
        This.house = house;
    }

    public void driver(){
        System.out.println(“車的型號:”+car.getType());
    }
    public void sleep(){
        System.out.println(“我在房子里睡覺:”+house.getAddress());
    }
}

4.組合(Composition)圖片

圖片

相比于聚合,組合是一種耦合度更強的關聯關系。存在組合關系的類表示“整體-部分”的關聯關系,“整體”負責“部分”的生命周期,他們之間是共生共死的;并且“部分”單獨存在時沒有任何意義。在下圖的例子中,People與Soul、Body之間是組合關系,當人的生命周期開始時,必須同時有靈魂和肉體;當人的生命周期結束時,靈魂肉體隨之消亡;無論是靈魂還是肉體,都不能單獨存在,他們必須作為人的組成部分存在。

Public class People{
    Soul soul;
    Body body; 
    //組合關系中的成員變量一般會在構造方法中賦值
     Public People(Soul soul, Body body){ 
        This.soul = soul;
        This.body = body;
    }

    Public void study(){
        System.out.println(“學習要用靈魂”+soul.getName());
    }
    Public void eat(){
        System.out.println(“吃飯用身體:”+body.getName());
    }
}

5.繼承(Generalization)圖片

圖片

繼承表示類與類(或者接口與接口)之間的父子關系。在java中,用關鍵字extends表示繼承關系。UML圖例中,繼承關系用實線+空心箭頭表示,箭頭指向父類。

6.實現(Implementation)圖片

圖片

表示一個類實現一個或多個接口的方法。接口定義好操作的集合,由實現類去完成接口的具體操作。在java中使用implements表示。UML圖例中,實現關系用虛線+空心箭頭表示,箭頭指向接口.

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    19

    文章

    2960

    瀏覽量

    104562
  • UML
    UML
    +關注

    關注

    0

    文章

    122

    瀏覽量

    30850
  • 面向對象
    +關注

    關注

    0

    文章

    64

    瀏覽量

    9978
收藏 人收藏

    評論

    相關推薦

    UML詳解

    UML
    電子學習
    發布于 :2023年01月14日 10:12:47

    UML狀態和Petri網絡在測試用例生成的應用

    【作者】:陳志德;曾凡平;【來源】:《小型微型計算機系統》2010年03期【摘要】:分析和研究UML狀態、擴展狀態機和Petri網在測試用例生成的特點,提出結合三者優勢的測試用例
    發表于 04-24 09:52

    編寫電視TV,UML和說明

    編寫電視TV,UML和說明如下:注意:(1)電視只有在打開的狀態下才可以調音量和設置新頻道;(2)設置音量和頻道時,應該在規定的范圍,如音量值為1-7。解題要求:編寫測試
    發表于 10-29 06:09

    基于UML的考試管理系統設計

    文中著重解決UML在完成各階段任務中的應用、分析設計流程等問題,就與時序兩者設計次序進行探討。UML有利于各類人員
    發表于 12-22 17:14 ?35次下載
    基于<b class='flag-5'>UML</b>的考試管理系統設計

    時序關系

    和時序是在軟件系統設計中直接和程序代碼相關聯的,準確地說,程序代碼是由直接產生,而時
    發表于 10-29 11:21 ?6780次閱讀
    時序<b class='flag-5'>圖</b>和<b class='flag-5'>類</b><b class='flag-5'>圖</b>的<b class='flag-5'>關系</b>

    UML可向OWL轉換原理

    本體語言是OWL,其體系是開放的,它被定義成3 個表達能力遞增的子語言OWL Lite,OWL DL與OWL Full。其中OWL DL 的表達能力較強,推理支持能力也較強。UML 是軟件工程技術中一標準的建模語言,被廣大的軟件工程技術人員所接受與使用。如何對
    發表于 10-31 16:05 ?4次下載
    <b class='flag-5'>UML</b><b class='flag-5'>類</b>可向OWL<b class='flag-5'>類</b>轉換原理

    Uml建模三模型_uml建模的步驟

    描述系統內部對象及其關系的靜態結構。模型由構建,圖中節點表示
    的頭像 發表于 09-25 09:51 ?1.6w次閱讀
    <b class='flag-5'>Uml</b>建模三<b class='flag-5'>種</b>模型_<b class='flag-5'>uml</b>建模的步驟

    UML之間關系

    UML中描述對象和之間相互關系的方式包括:依賴(Dependency),關聯(Association),聚合(Aggregation),組合(Composition),泛化(Gene
    的頭像 發表于 09-25 09:57 ?3854次閱讀
    <b class='flag-5'>UML</b><b class='flag-5'>類</b><b class='flag-5'>圖</b><b class='flag-5'>之間</b>的<b class='flag-5'>關系</b>

    什么是UML?常見的UML工具有哪些?

    UML是統一建模語言,又稱標準建模語言。是對軟件設計開發過程可視化建模的一語言。多應用在一些軟件系統工程上,有時在應用在機械系統和業務流程上有所應用。這種模型通常以圖表方式呈現。 UML
    的頭像 發表于 06-22 14:10 ?4612次閱讀
    什么是<b class='flag-5'>UML</b><b class='flag-5'>圖</b>?常見的<b class='flag-5'>UML</b><b class='flag-5'>圖</b>工具有哪些?

    UML簡介與詳解

    本篇介紹了UML的基礎知識,包括26關系,
    的頭像 發表于 05-05 09:07 ?4015次閱讀
    <b class='flag-5'>UML</b>簡介與<b class='flag-5'>類</b><b class='flag-5'>圖</b>詳解

    UML相關基本知識介紹

    UML - Unified modeling language UML (統一建模語言),是一用于軟件系統分析和設計的語 言工具, 用于幫助軟件開發人員進行思考和記錄思路的結果。簡單說,UM
    的頭像 發表于 05-05 10:22 ?629次閱讀
    <b class='flag-5'>UML</b>相關基本知識介紹

    UML學習筆記

    表示之間的聯系,如關聯、依賴、聚合等,也包括的屬性和操作,
    的頭像 發表于 05-05 10:26 ?693次閱讀
    <b class='flag-5'>UML</b><b class='flag-5'>圖</b>學習筆記

    UML圖符號等詳細介紹

    UML中描述對象和之間相互關系的方式包括:依賴(Dependency),關聯(Association),聚合(Aggregation),組合(Composition),泛化(Gene
    的頭像 發表于 05-05 10:41 ?1000次閱讀
    <b class='flag-5'>UML</b><b class='flag-5'>類</b>圖符號等詳細介紹

    解析UML和時序

    這里不會將UML的各種元素都提到,我只想講講圖中各個之間關系; 能看懂圖中各個
    的頭像 發表于 05-05 11:03 ?656次閱讀
    解析<b class='flag-5'>UML</b><b class='flag-5'>類</b><b class='flag-5'>圖</b>和時序<b class='flag-5'>圖</b>

    一文帶你讀懂UML

    UML表示法的主要內容可由下列五(共9來定義: (1)用例(Use Case
    的頭像 發表于 05-05 11:19 ?654次閱讀