類圖(Class Diagram)是UML(Unified Modeling Language,統一建模語言)中的一種圖,用于描述系統中類的靜態結構,包括類的屬性、方法以及類之間的關系。
一、類
類(Class):用矩形表示,包括類名、屬性和方法。
類名:通常位于矩形的頂部,以粗體或斜體顯示。
屬性:列在類名的下方,通常表示為“可見性 屬性名 : 類型”,其中可見性可以是公有(+)、私有(-)、保護(#)或包內私有(~)。
方法:也列在類名的下方,格式為“可見性 方法名(參數列表) : 返回類型”。
二、類的關系
1、繼承(Inheritance)
? ? ?【繼承關系】:表示一個類是另一個類的特殊類型,子類繼承父類的屬性和方法。
? ? ?【代碼體現】:在Java中此類關系通過關鍵字extends明確標識。
? ? ?【箭頭指向】:帶空心三角箭頭的實線,從子類指向父類。
2、實現(Realization)
? ? ?【實現關系】:是接口和實現類之間的關系。類實現了接口中的抽象方法。
? ? ?【代碼體現】:在Java中此類關系通過關鍵字implements明確標識。
? ? ?【箭頭指向】:帶空心三角箭頭的虛線,箭頭指向接口。
3、依賴(Dependency)
? ? ?【依賴關系】:是一種使用的關系,被依賴的對象只是作為一種工具在使用,而并不持有對它的引用。這種使用關系是具有偶然性、臨時性的、非常弱的,但是B類的變化會影響到A。
? ? ?【代碼體現】:局部變量、方法的參數或者對靜態方法的調用。
? ? ?【箭頭指向】:帶箭頭的虛線,指向被使用的類。
4、關聯(Association)
? ? ?【關聯關系】:是對象之間的一種引用關系,使一個類知道另外一個類的屬性和方法,通常有“知道”、“了解”的含義。如老師和學生,丈夫和妻子等。關聯關系有單向和雙向的。單向關聯有一個箭頭,雙向關聯有兩個箭頭或者沒有箭頭。
? ? ?【代碼體現】:成員變量。
? ? ?【箭頭指向】:帶普通箭頭的實線,從使用類指向被關聯的類。
5、聚合(Aggregation)
? ? ?【聚合關系】:是一種特殊的關聯關系,表示整體和部分之間的關系,如學校和老師,車子和輪胎。是一種“弱擁有”的關系,成員是整體的一部分,成員也可以脫離整體而存在。
? ? ?【代碼體現】:成員變量。
? ? ?【箭頭指向】:帶空心菱形的實線,菱形指向整體。
6、組合(Composition)
? ? ?【組合關系】:是一種特殊的關聯關系,表示整體和部分之間的關系,但部分不能離開整體而單獨存在。是一種“強擁有”的關系,如身體和大腦之間的關系,大腦不能脫離身體而單獨存在。
? ? ?【代碼體現】:成員變量。
? ? ?【箭頭指向】:帶實心菱形的實線,菱形指向整體。