2016-06-07 22:46:16
下面簡單介紹UML類圖:(圖是截取的,大家可以用UML工具去畫)
1、描述類的類圖

類:Person
屬性:name age sex
訪問權限:- 表示私有的private +:表示公共的public #:表示protected
方法: getName():String setName(name:String) getAge():int setAge(age:int) getSex():String setSex(sex:String)
方法最后跟的是返回類型,沒有的話返回類型是void,例如getName()返回類型是String,setName(name:String)返回類型是void
其中setName(name:String),setAge(age:int),setSex(sex:String)還包含參數名和參數類型
2、抽象類

可以看出類名Car是斜體,表示類是抽象的;方法名driver也是斜體,表示方法也是抽象的
3、接口

interface IFly{ void Fly(); }
interface ILanguage{ void Speak(); }
4、對象

類圖中的關系:
1、繼承或泛化 (Generalization)
注意是用空心三角形+實線連接
2、實現關系(Realization)

注意是用空心三角形+虛線連接
3、關聯關系 (association)
注意是用實線箭頭連接,更准確的說這是有方向的關聯(DirectedAssociation),關聯(Association)是用實線表示,無箭頭
關聯關系:一個類能夠“看到”另一個類中的屬性和方法:司機開車需要知道車子的信息,Driver能看到car的,Driver類中持有了Car類的引用;企鵝每年長途跋涉,需要知道氣候變化,在企鵝penguin中引用到氣候Climate對象。
4、聚合關系 (aggregation)

注意是用空心菱形+實線(箭頭)連接
聚合關系比關聯關系強些,是整體與個體之間的關系,表示了一種弱的擁有關系,體現的是A對象可以包含B對象,但B對象不是A對象的一部分
車子要有發動機和輪胎,而且一個車不會只有一個輪胎,所以Car引用Tire時用到了數組
5、合成關系(Composition)

注意是用實心菱形+實線(箭頭)連接
合成關系比聚合關系更強,是一種強的擁有關系,體現了嚴格的整體與部分的關系,它要求普通聚合關系中代表整體的對象負責代表部分的對象的生命周期,或者說它們的生命周期一樣。
class Bird{ private Wing wing; public Bird(){ wing=new Wing(); //在鳥Bird類中,初始化時,實例化翅膀Wing,他們之間同時生成 } }
6、依賴關系 (Dependency)

注意是用虛線箭頭表示
依賴總是單向的,表示的是一個類(A)依賴於另一個類(B),類B作為參數被類A在某個method方法中使用,可以看到在Man類的buy方法里有car和house的參數。
一個更形象的例子是動物依賴於氧氣和水
abstract class Animal{ public Metabolism(Oxygen oxygen,Water water){
} }
