




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第三章 物件導向的觀念 軟體工程-物件導向程式設計與UML系統分析實作3.1 模組與物件 在物件導向程式設計的觀念提出之前,軟體開發者,大多是使用結構化的程式設計。 模組模組就是用一個單一的函式所組成一連串的程式敘述, 可解決一最小的問題。圖3-1汽車行駛程式呼叫的模組圖註:以流程圖來表現,每個方塊代表一個模組物件導向語言物件導向語言顧名思義就是以物件為程式設計時最主要考慮到的對象。圖3-2物件之間靠傳遞訊息,啟動某些操作 3.2物件導向基本觀念 世界是由各種物件(Object)所組成,同類的物件可以再加以抽象化而成類別(Class),而每一類別具有自己的屬性(Attribute)來描述其特性
2、與方法(Method)來描述其動態之行為,彼此間之互動是藉由訊息(Message)傳遞來溝通。 類別(Class)為了簡化問題必須將各個物件加以分類,分類的結果便是產生類別(Class)圖3-3 物件導向類別圖表示法 實體 (Instance)實體也就是物件實體,是經由類別描述過的物件,可說是類別的實體化,也就是產生一個一個的物件。 屬性(Attribute)屬性是物件所擁有的資料描述或項目,亦有稱為資料結構或狀態。有的將靜態的資料稱為屬性,動態的資料稱為狀態(State)。 方法(Method)方法亦稱為操作(Operation)或行為(Behavior),方法是物件的動作,不同的訊息會對應
3、到不同的處理方法。 訊息(Message)訊息是物件之間互相溝通的工具,當物件收到訊息後,物件會依據訊息內容而執行不同的動作。 3.3 物件重要特性 封裝性(Encapsulation)繼承(Inheritance) 多型 (Polymorphism) 覆蓋(Overriding) 動態連結(Dynamic Binding) 封裝性(Encapsulation)封裝即所謂資訊隱藏(Information Hiding),主要是將物件的內外部份分開來,其他物件只能藉由外部的界面取得其提供的資料,物件內部的細節資料則隱藏起來,其他物件即無法瞭解此物件的內部細節,若不經過允許之窗口(即此物件提供之方
4、法)便無從更動此物件內之資料。 圖3-5 物件的封裝性 繼承(Inheritance):又稱為一般化(Generalization)與特殊化(Specialization)的關係,A繼承B乃指物件類別A是物件類別B的一種,因此物件類別A可以繼承物件類別B的屬性與方法。兩個以上類別一般化後之類別稱為超類別(Superclass)。圖3-6 類別的繼承 多型 (Polymorphism)所謂多型是指類別內同名的方法,因在不同的類別中定義,執行時會有不同結果的功能。 圖3-7多型 覆蓋(Overriding)每一類別會定義所屬之屬性與方法,當此類別被要求提供某種服務而需執行某方法時,若此類別本身定義
5、有此方法,則可以直接執行此方法,否則此類別會沿著類別階層由下往上找,直至找到為止。 圖3-8 覆蓋 動態連結(Dynamic Binding)所謂連結是將程式中所使用到的各名稱(包括程式名稱及變數名稱),分配到適當的記憶體位置。如果是在程式執行過程中才完成連結的,則稱為動態連結(Dynamic Binding),又稱為延後連結(Late Binding) 圖3-9 動態繫結圖 3.4內聚力與耦合力 評估一個系統設計的好壞,亦即計算獨立性的標準,有內聚力(cohesion)與耦合力(coupling)兩種。 3.4.1 耦合力分類 程式設計的領域時,表示程式單元之間牽連相依的程度,模組之間的耦合
6、度欲寬鬆愈好。 耦合力耦合力是指兩個模組之間的獨立性高低,以物件導向程式而言是指物件與物件之間的獨立性高低。圖3-10耦合力由低至高 3.4.2 內聚力分類 程式的內聚力則是愈強愈好。 內聚力(Cohesion)內聚力(Cohesion)指的就是事物凝聚的狀態或程度。 圖3-11 內聚力的由低至高 3.4.3 物件的內聚力和耦合力 物件導向語言的特性,剛好符合了高內聚力和低耦合力,這是物件導向的優點,也更促進了軟體的可重覆再使用的能力。 3.5 物件導向語言的種類 4個基本的分支:1. 基於Smalltalk語言的;包括Smalltalk的5個版本,以Smalltalk-80爲代表。2.基於C
7、語言的;包括 objective-C、 C+、 Java。(編輯註:及 Microsoft 近來所提出的 C#)。3.於LISP語言的;包括 Flavors、 XLISP、 LOOPS、 CLOS。4.於PASCAL語言的;包括 Object Pascal (ex:Delphi)、 Turbo Pascal、 Eiffel、 Ada 95。3.6 Java Java是個純物件導向語言,為Sun公司所發展。 圖3-12 Java的吉祥物Duke和代表Java的Java咖啡杯 JAVA的歷史 將此語言定名為GREEN團隊成員平時都愛喝的咖啡名稱JAVA。1995年5月23日,SUN正式對外發表了JAVA語言 JAVA程式語言的特性1.熟悉且簡易(simple and familiar) 2.物件導向(object oriented)3.分散式(distributed)4.直譯式(interpreted) 5.堅韌性(robust)6.安全(secure)7.架構中立(architecture neutral)8.高效率(high performance)且多執行緒(multithread
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 云南省玉溪市民中2024-2025學年高二下物理期末調研模擬試題含解析
- 餐廳餐飲服務與食品安全責任保險合同
- 車輛贈與合同范本:車輛保險后贈與
- EPS線條安裝工程環保風險評估合同
- 父母房產買賣合同與子女優先購買權協議
- 施工現場安全文明施工管理制度
- 公益勞動心得體會1000字范文(15篇)
- 工程合作合同(15篇)
- 行政管理中的信息共享與合作試題及答案
- 嵌入式系統的信號完整性分析試題及答案
- 健康教育在護理工作中的意義
- 2025重慶市萬州區龍沙鎮社區工作者考試真題
- 2025年5月12日陜西省公務員面試真題及答案解析
- 上海市徐匯區2024-2025學年八年級(下)期中物理試卷(含解析)
- 2025-2030中國海上風電行業市場深度調研及投資策略與投資前景研究報告
- 2024-2025學年五年級語文下學期必刷題之病句
- 5G共享網絡的無縫連接與邊緣計算協同發展-洞察闡釋
- 江蘇省建設工程造價咨詢全過程合同模板模板
- 2025-2030中國活塞桿行業市場發展趨勢與前景展望戰略研究報告
- 2025形勢與政策課件-加快建設社會主義文化強國
- 2024年藥物經濟學考題及答案
評論
0/150
提交評論