作一個積極的人html
編碼、改bug、提高本身java
我有一個樂園,面向編程,春暖花開!編程
思惟導圖地址:naotu.baidu.com/file/df1cb0… 密碼:33bZ架構
下面就從上面的思惟導圖開始,詳細的介紹UML類圖! 在講解以前請看關係線條圖(必定要牢記): 工具
統一建模語言(英語:Unified Modeling Language,縮寫 UML)是非專利的第三代建模和規約語言。UML是一種開放的方法,用於說明、可視化、構建和編寫一個正在開發的、面向對象的、軟件密集系統的製品的開放方法。【維基百科】測試
UML分爲UML模型和UML類圖。this
區分UML模型和UML圖是很是重要的,UML圖,包括用例圖、協做圖、活動圖、序列圖、部署圖、構件圖、類圖、狀態圖,是模型中信息的圖形表達方式,可是UML模型獨立於UML圖存在。編碼
UML展示了一系列最佳工程實踐,這些最佳實踐在對大規模,複雜系統進行建模方面,特別是在軟件架構層次已經被驗證有效。 類圖的做用: (1):在軟件工程中,類圖是一種靜態的結構圖,描述了系統的類的集合,類的屬性和類之間的關係,能夠簡化了人們對系統的理解; (2):類圖是系統分析和設計階段的重要產物,是系統編碼和測試的重要模型。spa
類的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!
可見性 名稱([參數列表:參數1,參數2]):返回類型[:void]
可見性如上名稱表達式的介紹,名稱就是方法名,參數列表是可選的項,多參數的話參數直接用英文逗號隔開;返回值也是個可選項,返回值類型能夠說基本的數據類型、用戶自定義類型和void。若是是構造方法,則無返回類型!
(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等
在次附上 關係線條 圖:
Java利器之UML類圖詳解 UML類圖符號 各類關係說明以及舉例 深刻淺出UML類圖
謝謝你的閱讀,若是您以爲這篇博文對你有幫助,請點贊或者喜歡,讓更多的人看到!祝你天天開心愉快!
無論作什麼,只要堅持下去就會看到不同!在路上,不卑不亢!
博客首頁 : https://aflyun.blog.csdn.net/
願你我在人生的路上能都變成最好的本身,可以成爲一個獨擋一面的人
© 天天都在變得更好的阿飛雲