軟件設計—UML類圖詳解

作一個積極的人html

編碼、改bug、提高本身java

我有一個樂園,面向編程,春暖花開!編程

1、UML類圖思惟 導圖

這裏寫圖片描述

思惟導圖地址:naotu.baidu.com/file/df1cb0… 密碼:33bZ架構

二 、詳細分析和介紹

下面就從上面的思惟導圖開始,詳細的介紹UML類圖! 在講解以前請看關係線條圖(必定要牢記): 工具

這裏寫圖片描述

一、 什麼是UML,概念是什麼?

​ 統一建模語言(英語:Unified Modeling Language,縮寫 UML)是非專利的第三代建模和規約語言。UML是一種開放的方法,用於說明、可視化、構建和編寫一個正在開發的、面向對象的、軟件密集系統的製品的開放方法。【維基百科測試

UML分爲UML模型和UML類圖。this

區分UML模型和UML圖是很是重要的,UML圖,包括用例圖、協做圖、活動圖、序列圖、部署圖、構件圖、類圖、狀態圖,是模型中信息的圖形表達方式,可是UML模型獨立於UML圖存在。編碼

二、爲何要用UML?類圖的做用

​ UML展示了一系列最佳工程實踐,這些最佳實踐在對大規模,複雜系統進行建模方面,特別是在軟件架構層次已經被驗證有效。 ​ 類圖的做用: ​ (1):在軟件工程中,類圖是一種靜態的結構圖,描述了系統的類的集合,類的屬性和類之間的關係,能夠簡化了人們對系統的理解; ​ (2):類圖是系統分析和設計階段的重要產物,是系統編碼和測試的重要模型。spa

三、 類的UML的介紹和畫法?

​ 類的UML使用包含類名、屬性、方法名以及參數。使用帶分割線的長方形表示。 代碼演示:.net

public  class Person {

    public String  name;

    protected int  age;

    private String accommodation = "Earth";//住所

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAccommodation() {
        return accommodation;
    }

    public void setAccommodation(String accommodation) {
        this.accommodation = accommodation;
    }
}

複製代碼

類圖:

這裏寫圖片描述
如上這個類圖,Person類有三部分組成,分別是類名、屬性和操做方法,下面一一進行介紹:

  • 類名:

就是Java類的名字, 若是是類是抽象類則類名顯示爲斜體! 其餘地方不作改動。

Person

  • 屬性名:

就是java中的成員變量,一個類能夠零到多個屬性,java中屬性(成員變量)的修飾符,類型和默認值均可以在UML中體現出來。一般用的表達式以下:

可見性 名稱:類型[=默認值]

在Java中可見性分爲三類,分別是public、private和protected,在類圖分別用+、-和#表示;名稱爲屬性的名稱;類型在java中有八種基本的數據類型(byte、short、 int、long、 float、 double、 char、 boolean)及String和一些自定義的類型。默認值如變量 accommodation 有初始值爲 Earth!

  • 操做方法 在java中類的操做方法也是有個通用的表達式以下:

可見性 名稱([參數列表:參數1,參數2]):返回類型[:void]

可見性如上名稱表達式的介紹,名稱就是方法名,參數列表是可選的項,多參數的話參數直接用英文逗號隔開;返回值也是個可選項,返回值類型能夠說基本的數據類型、用戶自定義類型和void。若是是構造方法,則無返回類型!

四、類之間關係UML的介紹和畫法?

(1)泛化(Generalization)關係 :空心箭頭實線表示,箭頭指向我的

泛化關係表示類與類之間的繼承關係,類和類,接口和接口均可以是繼承關係,父類稱爲基類或者超類,子類稱爲派生類。子類繼承父類實現父類的全部功能,並擁有父類沒有的功能!

下面寫了兩個子類繼承Person類!

public class ChineseMan extends Person{

    private String skinColor = "yellow";

    public void sayHello(){
        System.out.println("歡迎來中國 !");
    }
}
public class USAMan extends Person{

    private String language = "English";

    public void sayHello(){
        System.out.println("Welcome to USA !");
    }
}
複製代碼

這裏寫圖片描述

(2)實現(Realization)關係 :空心箭頭虛線表示,箭頭指向約定的元素

實現關係就是java中的一個類和接口之間的關係,接口中通常是沒有成員變量。全部操做都是抽象的,只有聲明沒有具體的實現。

public interface Car {
    //車的牌子
    public void brand();
}
public class LandRover implements Car{

    public void brand() {
        System.out.println("This is a LandRover");
    }
}
複製代碼

這裏寫圖片描述

(3)依賴(Dependence)關係:虛線箭頭表示,箭頭指向被依賴的對象

依賴關係是類與類之間最弱的關係,A元素變化會影響B元素,反之不成立。說簡單點就是一個類使用了另外一個類,這種關係具備臨時性特徵,一個類的改變因爲另外一類而受影響。

public class ChineseMan extends Person{

    private String skinColor = "yellow";

    public void sayHello(){
        System.out.println("歡迎來中國 !");
    }

    public void useCar(LandRover car){
        System.out.println(car.brand(););
    }
}

複製代碼

這裏寫圖片描述

(4)關聯關係:實線箭頭表示,箭頭指向(也能夠雙向)被依賴元素

關聯關係表示一個類和另外一類有聯繫,它使一個類知道另外一個類的屬性和方法,被關聯的元素間一般能夠被獨立的考慮。

/** * 延安人-紅色革命聖地歡迎你! */
public class YanAnMan {
    public ChineseMan cm;
    //public List<ChineseMan> list;
}
複製代碼

這裏寫圖片描述

1..1表示另外一個類的一個對象只與該類的一個對象有關係 0..* 表示另外一個類的一個對象與該類的零個或多個對象有關係 1..* 表示另外一個類的一個對象與該類的一個或多個對象有關係 0..1表示另外一個類的一個對象沒有或只與該類的一個對象有關係

(5)聚合(Aggregation)關係:帶空心菱形頭的實線表示,菱形頭指向總體

聚合關係是總體和部分的關係,是一種強的關係,可是部分能夠脫離總體而存在。是關聯關係的一種。

好比有一輛LandRover,有輪胎和發動機!

這裏寫圖片描述

(6):組合(Composition)關係:帶實心菱形頭的實線表示,菱形頭指向總體

組合關係是聚合關係的一種變種,即是了更強的組合關係,它要求總體的對象表明部分對象的生命週期。

好比YanMan 的一個大腦!

這裏寫圖片描述

三 、使用的工具和詳細的資料

一、使用的畫圖工具

思惟導圖:百度腦圖 畫UML:Microsoft Visio、JUDE、processon等

二、完整的UML類圖:

這裏寫圖片描述

在次附上 關係線條 圖:

這裏寫圖片描述

4、參考資料

Java利器之UML類圖詳解 UML類圖符號 各類關係說明以及舉例 深刻淺出UML類圖


謝謝你的閱讀,若是您以爲這篇博文對你有幫助,請點贊或者喜歡,讓更多的人看到!祝你天天開心愉快!



無論作什麼,只要堅持下去就會看到不同!在路上,不卑不亢!

博客首頁 : https://aflyun.blog.csdn.net/

願你我在人生的路上能都變成最好的本身,可以成爲一個獨擋一面的人

© 天天都在變得更好的阿飛雲

相關文章
相關標籤/搜索