- 1、本文档共68页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
类别图与物件图
第9章 類別圖與物件圖 9-1 類別圖與物件圖的基礎 9-2 類別圖的符號 9-3 類別關係 9-4 物件圖 9-5 繪製類別圖與物件圖 9-6 綜合練習 9-1 類別圖與物件圖的基礎-說明 類別是物件導向軟體系統的核心,UML類別圖(Class Diagram)可以用來描述軟體系統靜態結構的類別和類別關係(Relationships),它是我們最常使用的UML圖形。 物件圖(Object Diagram)就是類別圖的實例(Instances),其基本觀念和類別圖相同,不過,物件圖描述的系統靜態結構是系統某一時間點的快照(Snapshot)。 9-1 類別圖與物件圖的基礎-4+1觀點 類別圖與物件圖可以呈現4+1觀點軟體系統模型的邏輯觀點,如下圖所示: 9-1 類別圖與物件圖的基礎-類別圖的目的 類別圖的主要目的是建立軟體系統靜態觀點的模型,它是唯一可以直接對應物件導向程式語言的UML圖形,其主要目的如下所示: 建立物件導向分析和設計階段的領域、概念、分析和設計模型。 描述系統的責任(Responsibilities)。 類別圖是套件、元件和部署圖的基礎。 支援UML塑模工具將類別圖轉換輸出成程式碼,或是反向工程將程式碼轉換成UML類別圖。 9-1 類別圖與物件圖的基礎-物件圖的目的 物件圖和類別圖的差異在於類別圖是類別和其關係建立的抽象模型,物件圖是在特定時間點建立的實例。換句話說,物件圖比類別圖更接近實際的系統行為,其主要目的如下所示: 支援輸出程式碼和反向工程。 描述系統的物件關係。 描述物件之間互動的靜態觀點。 了解特定觀點的物件行為和其關係。 9-2 類別圖的符號 9-2-1 類別符號 9-2-2 屬性與能見度 9-2-3 操作 9-2 類別圖的符號 UML類別圖的基本單位是類別符號(Notation),多個類別之間擁有類別關係,我們可以使用多種連接線來標示類別之間不同的類別關係,例如:圖書銷售系統(Book Sales System)的類別圖,如下圖所示: 9-2-1 類別符號-類別 類別符號是組成類別圖的基本單位,它是使用長方形來表示,在長方形中由上而下分成三個部分:類別名稱、屬性(Attribute)和操作(Operation),如下圖所示: 9-2-1 類別符號-抽象類別 抽象類別(Abstract Class)是使用斜體字的類別名稱來表示。例如:抽象類別Person,如下圖所示: 9-2-1 類別符號-靜態類別 靜態類別(Static Class)和其他非靜態類別並沒有什麼不同,唯一差異是靜態類別不能建立物件,而且在類別名稱上方加上static模版來表示,如下圖所示: 9-2-2 屬性與能見度-屬性語法 在類別符號中間部分是屬性(Attributes)清單,這是類別的性質、特徵或狀態,每一個屬性自成一列來表示。 類別屬性的基本語法,如下所示: 能見度 屬性名稱 : 資料型態[ = 初值] 上述語法的開頭是能見度符號+、-、#和~,符號之後和「:」符號之前是屬性名稱,「:」符號之後是資料型態,如果屬性有初值,可以在「=」等號後指定初值。例如:類別的month和salesForMonth屬性,如下所示: - month : int = 1 - salesForMonth : int 9-2-2 屬性與能見度-能見度(種類) 在操作和屬性前可以加上存取修飾子,稱為能見度(Visibility),或稱為可見度和可見性。能見度是物件導向的封裝機制,可以指定操作或屬性的存取等級,避免屬性被任意修改,或操作被任意呼叫。UML的能見度分為四種,如下圖所示: 9-2-2 屬性與能見度-能見度(說明) Public能見度:允許其他任何類別存取的屬性或操作,事實上,在類別中宣告Public能見度的屬性和方法就是類別對外的使用介面,允許其他類別存取和使用。它是使用「+」符號表示Public能見度。 Protected能見度:允許類別本身和其繼承的子類別存取屬性和使用操作。它是使用「#」符號表示Protected能見度。 Package能見度:只允許同一個套件的類別可以存取屬性和使用操作。它是使用「~」符號表示Package能見度。 Private能見度:表示它是屬於類別本身,除類別本身之外,不允許任何其他類別存取或使用。它是使用「-」符號表示Private能見度。 9-2-2 屬性與能見度-靜態屬性 靜態屬性(Static Attributes)表示此屬性是屬於類別,不論類別建立多少個物件,存取靜態屬性都是存取同一個屬性,在UML類別圖是使用底線標示靜態屬性,例如:Student類別的teacherNo和count屬性,如下圖所示: 9-2-3 操作-語法1 在類別符號最下方是操作(Operations)清單,
文档评论(0)