軟件工程課件:第9章 面向?qū)ο蠓椒╛第1頁
軟件工程課件:第9章 面向?qū)ο蠓椒╛第2頁
軟件工程課件:第9章 面向?qū)ο蠓椒╛第3頁
軟件工程課件:第9章 面向?qū)ο蠓椒╛第4頁
軟件工程課件:第9章 面向?qū)ο蠓椒╛第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第9章 面向?qū)ο蠓椒▽W(xué)引論9.1 面向?qū)ο蠓椒▽W(xué)概述9.1.1 面向?qū)ο蠓椒▽W(xué)的要點(diǎn) 面向?qū)ο蠓椒▽W(xué)的基本原則:盡可能模擬人類習(xí)慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認(rèn)識(shí)世界解決問題的方法與過程??陀^世界中的實(shí)體問題域中的對(duì)象;計(jì)算機(jī)中的實(shí)體解空間對(duì)象;解空間對(duì)象取決于程序設(shè)計(jì)語言: 匯編語言的對(duì)象:存儲(chǔ)單元; 面向過程的高級(jí)語言的對(duì)象:變量、數(shù)組、記錄、文件等; 面向?qū)ο蟮母呒?jí)語言的對(duì)象:除上述元素外,還包括窗體、菜單、按鈕、等等。 與傳統(tǒng)方法不同,面向?qū)ο蠓椒ㄒ詳?shù)據(jù)為主線,將數(shù)據(jù)和操作方法封裝在對(duì)象中,通過消息請(qǐng)求對(duì)象主動(dòng)執(zhí)行它的內(nèi)部操作,改變其內(nèi)部私有數(shù)據(jù)。面向?qū)ο蠓椒ň哂兴?/p>

2、個(gè)要點(diǎn): A認(rèn)為客觀世界是由對(duì)象組成; B把所有對(duì)象都劃分成各種對(duì)象類(Class); C把若干對(duì)象類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(類等級(jí)); D對(duì)象彼此間僅通過傳遞消息互相聯(lián)系。 OO = Objects + Class + Inheritance + Communication with message 9.1.2 面向?qū)ο蠓椒ǖ膬?yōu)點(diǎn) 1與人們習(xí)慣的思維方法一致; 2穩(wěn)定性好; 3可重用性好; 4較易開發(fā)大型軟件產(chǎn)品; 5. 可維護(hù)性好。9.1.3 噴泉模型9.2 面向?qū)ο蟮母拍?.2.1 對(duì)象 1、對(duì)象的形象表示 狀態(tài)S操作1操作2操作3界面操作1、2、3的實(shí)現(xiàn)圖9.2 對(duì)象的形象表示1)定義

3、1:對(duì)象是具有相同狀態(tài)的一組操作的集合。2)定義2:對(duì)象是對(duì)屬性值和操作的封裝。3)定義3:對(duì)象:= 其中,ID是對(duì)象的名字;MS是對(duì)象中的操作集合;DS是對(duì)象的數(shù)據(jù)集合;MI是對(duì)象受理的消息名集合(即對(duì)外接口)。 2、對(duì)象的定義狀態(tài)S操作:f1, f2, , fn轉(zhuǎn)換:g1, g2, ,gn圖9.3 用自動(dòng)機(jī)模擬對(duì)象轉(zhuǎn)換:新狀態(tài)S=gi (X,S)輸出 fi (X, S)輸入fi , X3、對(duì)象的特點(diǎn) 1)以數(shù)據(jù)為中心; 2)對(duì)象是主動(dòng)的; 3)實(shí)現(xiàn)了數(shù)據(jù)封裝; 4)本質(zhì)上具有并行性; 5)模塊獨(dú)立性好。 9.2.2 其他概念1、類(Class) 類就是對(duì)具有相同數(shù)據(jù)和相同操作的一組相似對(duì)象

4、的定義。 如:Circle類具有相同的數(shù)據(jù)(圓心坐標(biāo)、半徑、顏色)和相同的操作(顯示自己、放大縮小半徑、在屏幕上移動(dòng)位置)。 類有私有變量(Private)和公有變量(Public)。 實(shí)例就是由某個(gè)特定的類所描述的一個(gè)具體的對(duì)象。如:Circle a ; /聲明Circle類實(shí)例a Queue Q1, Q2; /聲明Queue類實(shí)例Q1和Q2 2、實(shí)例(Instance) 消息就是用來請(qǐng)求對(duì)象執(zhí)行某個(gè)處理或回答某些信息的要求。 消息既可以是數(shù)據(jù)流,也可以是控制流。一條消息可以發(fā)送給不同的對(duì)象,對(duì)消息的解釋完全由接收信息的對(duì)象來完成,不同的對(duì)象對(duì)相同形式的消息可以有不同的解釋。 3、消息(Me

5、ssage) 與傳統(tǒng)程序的“調(diào)用/返回”所不同的是,對(duì)于傳來的消息,對(duì)象可以返回相應(yīng)的回答信息,也可以不返回。 一個(gè)消息由三個(gè)部分組成: 1)接收信息的對(duì)象; 2)信息選擇符(即消息名); 3)零個(gè)或多個(gè)變?cè)▍?shù))。 如:MyCircle.Show(GREEN); 4、方法(Method) 方法,是對(duì)象所能執(zhí)行的操作。 成員函數(shù),如Circle類中定義的成員函數(shù):Show(int color) 5、屬性(Attribute) 屬性,是類中定義的數(shù)據(jù)。6、封裝(encapsulation) 封裝就是信息隱藏,通過封裝對(duì)外界隱藏了對(duì)象的實(shí)現(xiàn)細(xì)節(jié)。7、繼承(Inheritance) 繼承,是指能夠

6、直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們。 A的操作A的變量類AA的實(shí)例變量從A的繼承特性B的操作B的變量類B繼承來的A的實(shí)例變量B的實(shí)例變量類AA的實(shí)例a1B的實(shí)例b1類B:A的子類圖9.4 實(shí)現(xiàn)繼承機(jī)制的原理8、多態(tài)性(Polymorphism) 多態(tài)性,指子類對(duì)象可以象父類對(duì)象那樣使用,同樣的消息既可以發(fā)送給父類對(duì)象,也可以發(fā)送給子類對(duì)象。 即不同等級(jí)的類,可以公用一個(gè)方法的名字。9、重載(Overloading)有兩種重載:1)函數(shù)重載 指在同一作用域內(nèi)的若干個(gè)參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字。 如: Show(int a, int b) Show(int x) Show(

7、int x, int y, int z)2)運(yùn)算符重載 指同一運(yùn)算符可以施加于不同類型的操作數(shù)上面。當(dāng)被操作數(shù)類型不同時(shí),運(yùn)算符的含義是不同的。 編譯時(shí)根據(jù)被操作數(shù)的類型,決定使用算符的哪種語義。 用面向?qū)ο蠓椒ㄩ_發(fā)軟件,通常需要建立三種形式的模型,它們分別是:(1)對(duì)象模型:描述系統(tǒng)的數(shù)據(jù)結(jié)構(gòu);(2)動(dòng)態(tài)模型:描述系統(tǒng)的控制結(jié)構(gòu);(3)功能模型:描述系統(tǒng)的功能。 3種模型必不可少,其重要程度不同,對(duì)象模型是最基本、最重要的。9.3 面向?qū)ο蠼ML(Unified Modeling Language) UML是面向?qū)ο蟮姆治雠c設(shè)計(jì)(OOAD)方法發(fā)展的產(chǎn)物。 UML基礎(chǔ)(見補(bǔ)充材料)。 9.7 三種模型之間的關(guān)系1)針對(duì)每個(gè)類建立的動(dòng)態(tài)模型,描述了實(shí)例的生命周期或運(yùn)行周期。2)狀態(tài)轉(zhuǎn)換驅(qū)使行為發(fā)生,這些行為在數(shù)據(jù)流圖中被映射成處理,在用例圖中被映射成用例,它們同時(shí)與類圖中的服務(wù)相對(duì)應(yīng)。3)功能模型中的處理(或用例)對(duì)應(yīng)于對(duì)象模型中的類所提供的服務(wù)。4)數(shù)據(jù)流圖中的數(shù)據(jù)存儲(chǔ),以及數(shù)據(jù)的源點(diǎn)/終點(diǎn),通常是對(duì)象模型中的對(duì)象。5)數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論