面向?qū)ο蠹夹g(shù)_第1頁(yè)
面向?qū)ο蠹夹g(shù)_第2頁(yè)
面向?qū)ο蠹夹g(shù)_第3頁(yè)
面向?qū)ο蠹夹g(shù)_第4頁(yè)
面向?qū)ο蠹夹g(shù)_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

面向?qū)ο蠹夹g(shù)簡(jiǎn)介

面向?qū)ο蟮幕舅枷?/p>

面向?qū)ο笫且环N新興的程序設(shè)計(jì)方法,或

者是一種新的程序設(shè)計(jì)規(guī)范(paradigm)淇基

本思想是使用對(duì)象、類(lèi)、繼承、封裝、消息

等基本概念來(lái)進(jìn)行程序設(shè)計(jì)。從現(xiàn)實(shí)世界中

客觀存在的事物(即對(duì)象)出發(fā)來(lái)構(gòu)造軟侔

系統(tǒng),并且在系統(tǒng)構(gòu)造中盡可能運(yùn)用人類(lèi)的

自然思維方式。開(kāi)發(fā)一個(gè)軟件是為了解決某

些問(wèn)題,這些問(wèn)題所涉及的業(yè)務(wù)范圍稱(chēng)作該

軟件的問(wèn)題域。其應(yīng)用領(lǐng)域不僅僅是軟件,

還有計(jì)算機(jī)體系結(jié)構(gòu)和人工智能等。

面向?qū)ο笳Z(yǔ)言發(fā)展歷史

非面向?qū)ο笳Z(yǔ)言面向?qū)ο笳Z(yǔ)言

Fortran(50年代Simula(60年代后期)

中期)?Ada(70年代前期)

?Algol(60年代)?Smalltalk(72年開(kāi)始)

?Pascal(68年)?C++(80年由Bell

(年)

?Basic64公司Stroustrup創(chuàng)建)

■C語(yǔ)言(72年

?Java(94年由SUN

DennisRitchie

公司創(chuàng)建)

創(chuàng)建)

面向?qū)ο蠹夹g(shù)的作用

1.提高生產(chǎn)效率。表現(xiàn)在:程序重用共享

2.降低維護(hù)復(fù)雜性。表現(xiàn)在:程序模塊化

3.開(kāi)發(fā)大型軟件。主要表現(xiàn)在:

?抽象模型更接近現(xiàn)實(shí)世界。

?模型與程序易于理解

?程序具有重用性和模塊化

?軟件易于維護(hù)

面向?qū)ο蠹夹g(shù)的應(yīng)用

1.面向?qū)ο髷?shù)據(jù)庫(kù)(OODB

Object-OrientedDatabase)

2.面向?qū)ο蟮南到y(tǒng)模擬

3.面向?qū)ο蟮娜藱C(jī)交互圖形用戶(hù)界面

(GUI,GraphicUserInterface)

4.人工智能和知識(shí)工程

5.計(jì)算機(jī)輔助軟件工程(CASE,

Computer-AidedSoftware

Engineering)

6.計(jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)模擬

面向?qū)ο蠹夹g(shù)的基本特征

主要特征:對(duì)象、類(lèi)、封裝、繼承、消息、

結(jié)構(gòu)與連接、及多態(tài)性.

對(duì)象(object)

實(shí)體對(duì)象H一臺(tái)計(jì)算機(jī)

抽象對(duì)象區(qū)一項(xiàng)計(jì)劃

什么是對(duì)象:用來(lái)描述客觀事物的一個(gè)實(shí)

體,它是構(gòu)成系統(tǒng)的一個(gè)基

本單元。一個(gè)對(duì)象由一組屬

性和服務(wù)組成。

對(duì)象構(gòu)成要素:

L對(duì)象標(biāo)識(shí)符(對(duì)象名)2.屬性3.服務(wù)

標(biāo)識(shí)符:是對(duì)象的名稱(chēng),用來(lái)區(qū)別與

其他對(duì)象。

屬性:是用來(lái)描述對(duì)象靜態(tài)特征的

一個(gè)數(shù)據(jù)項(xiàng)。

服務(wù):是用來(lái)描述對(duì)象動(dòng)態(tài)特征和行為的

一個(gè)操作。

例題:考慮對(duì)象“學(xué)生”,具體描述為:

對(duì)象名學(xué)生

學(xué)號(hào)、姓名、專(zhuān)業(yè)、性別、

屬性

年齡、身份證號(hào)、電話(huà)等等

獲取和修改學(xué)號(hào)、姓名、

服務(wù)專(zhuān)業(yè)、性別、年齡等等

注意點(diǎn):1.一體性H三者成為一體

2,區(qū)別區(qū)的園IJ三者的區(qū)別

例題:對(duì)象“課程”的有關(guān)抽象描述。

對(duì)象名課程

課程名、編號(hào)、學(xué)時(shí)數(shù)、選課

屬性要求、任課教師等

獲取并修改課程名、編號(hào)、學(xué)

服務(wù)時(shí)數(shù)、選課要求、任課教師等

注意點(diǎn):1.屬性是對(duì)對(duì)象的靜態(tài)描述.

2.服務(wù)是對(duì)對(duì)象的動(dòng)態(tài)描述.

外部是通過(guò)調(diào)用服務(wù)與對(duì)

象取得聯(lián)系.

類(lèi)(class)

什么是類(lèi)區(qū)是具有相同屬性和服務(wù)的集

合,它提供對(duì)對(duì)象的抽象描述

類(lèi)與對(duì)象的關(guān)系W類(lèi)0對(duì)象

抽象定義實(shí)例

例題模具今由模具壓出的工件

學(xué)生今學(xué)生張三

模板今應(yīng)用模板產(chǎn)生的文件

類(lèi)型=變量,如c語(yǔ)言中的

int和intx;

類(lèi)的分類(lèi)區(qū)I抽象類(lèi),基類(lèi)(父類(lèi)),

派生類(lèi)(子類(lèi)),等等

基類(lèi)區(qū)I運(yùn)用抽象原則,舍棄對(duì)象的

特殊性,提取對(duì)象的共同性,

得到的一個(gè)對(duì)象集的類(lèi).

派生類(lèi)區(qū)I在基類(lèi)的基礎(chǔ)上,再考慮在

抽象過(guò)程中被舍棄的對(duì)象

的特殊性,而產(chǎn)生的新類(lèi).

例題4:若考慮類(lèi)“學(xué)生”,則類(lèi)“大學(xué)生”

和“中學(xué)生”就是它的派生類(lèi)。類(lèi)

“學(xué)生”是它們的基類(lèi)。

?派生類(lèi)具有基類(lèi)的全部

基類(lèi)與派特征。\

生類(lèi)的關(guān)?派生類(lèi)有自己的特征,

系不完全等于基類(lèi)。

?它們有繼承關(guān)系,派生

類(lèi)是基類(lèi)的子集。

例如,基類(lèi)“學(xué)生”和派生類(lèi)“大學(xué)生”

的關(guān)系。

分類(lèi)的目?對(duì)現(xiàn)實(shí)世界的實(shí)體進(jìn)行

的和意義分類(lèi),便于應(yīng)用OOT。

?直觀地,正確地,有層

次地表達(dá)現(xiàn)實(shí)世界。

例題:

考慮運(yùn)輸工具這個(gè)實(shí)體,它包含

了車(chē)輛,車(chē)輛又包含機(jī)動(dòng)車(chē)和非機(jī)

動(dòng)車(chē),機(jī)動(dòng)車(chē)又包含轎車(chē)和卡車(chē)等

等。如果建一基類(lèi)“機(jī)動(dòng)車(chē)”,則

“轎車(chē)”和“卡車(chē)”就是“機(jī)動(dòng)車(chē)

”的派生類(lèi),而“車(chē)輛”可以是基

類(lèi)“機(jī)動(dòng)車(chē)”的基類(lèi)。即基類(lèi)可以

有基類(lèi),派生類(lèi)可以有派生類(lèi)。

1

車(chē)

輛大客車(chē)

機(jī)

動(dòng)普通車(chē)

車(chē)

越野車(chē)

車(chē)輛類(lèi)層次圖

類(lèi)名

類(lèi)Person

的屬性

表區(qū)

示服務(wù)ID,Name,Add,...

GetID,GetName,

ChlD,ChName....

例題6:類(lèi)“課程”的表示

Course

CID,CName,Credit,Term,Note

GetID,GetName,GetCredit,GetNote

ChlD,ChName,ChCrediLChNote

類(lèi)名,屬性,服務(wù)的命名注意點(diǎn)

?標(biāo)識(shí)符(即名字)要達(dá)義。

?要簡(jiǎn)明,短小,符合人的思維習(xí)慣。

?類(lèi)名宜用名詞或動(dòng)名詞,

屬性名用名詞或動(dòng)名詞,

服務(wù)名用動(dòng)詞或動(dòng)名詞。

封裝(encapsulation)

封裝就是把對(duì)象的屬性和服務(wù)結(jié)合成一個(gè)獨(dú)立的相

同單位,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié),包含兩個(gè)

含義:

?把對(duì)象的全部屬性和全部服務(wù)結(jié)合在一起,

形成一個(gè)不可分割的獨(dú)立單位(即對(duì)象)。

?信息隱蔽,即盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié),

對(duì)外形成一個(gè)邊界(或者說(shuō)形成一道屏障),只保

留有限的對(duì)外接口使之與外部發(fā)生聯(lián)系。

封裝的原則在軟件上的反映是:要求使對(duì)象以

外的部分不能隨意存取對(duì)象的內(nèi)部數(shù)據(jù)(屬性),

從而有效的避免了外部錯(cuò)誤對(duì)它的“交叉感染”,使

軟件錯(cuò)誤能夠局部化,大大減少查錯(cuò)和排錯(cuò)的難度。

封裝(encapsulation)

例:考慮一個(gè)倉(cāng)庫(kù),外部只能通過(guò)

管理員獲取物品。

價(jià)格表,物品,

倉(cāng)庫(kù)

屬性帳單,電話(huà),

抽象

等等

服提供物品,

務(wù)帳單等等

例:考慮類(lèi)'帳戶(hù)',其表示如下:

帳戶(hù)\

帳戶(hù)號(hào),戶(hù)主,身份證號(hào),地址,

電話(huà),密碼,存款。

修改顯示帳戶(hù)號(hào),戶(hù)主,身份證號(hào),

地址,電話(huà),密碼,存款。

問(wèn)題的提出區(qū)I從現(xiàn)實(shí)世界的實(shí)例表明,

類(lèi)的一些消息需要保護(hù),

外界不能隨意提取修改,

OOT的封裝就提供這一

需求。

封裝因把對(duì)象的屬性和服務(wù)結(jié)

合成一個(gè)獨(dú)立的單元,

并盡可能蔭蔽對(duì)象的內(nèi)

部細(xì)節(jié)。

封裝的特點(diǎn)區(qū)I1.—個(gè)清楚的邊界。

所有對(duì)象的成分都在

這個(gè)邊界內(nèi)。

7—個(gè)y寺口

.外部通過(guò)去個(gè)接口訪

問(wèn)對(duì)象的內(nèi)部成員。

封裝的優(yōu)點(diǎn)區(qū)1.數(shù)據(jù)獨(dú)立(如每件事

物都對(duì)應(yīng)于一對(duì)象、

2,具有隱藏性和安全性

(如銀行的帳戶(hù))

3.易于維護(hù)(由于數(shù)據(jù)

獨(dú)立,易于發(fā)現(xiàn)問(wèn)題)

封裝的缺點(diǎn)區(qū)I需要更多的輸入輸出

函數(shù)。

繼承(inheritance)

什么是繼承區(qū)I?特殊類(lèi)具有普通類(lèi)的

所有特性和服務(wù)

?是類(lèi)之間的一種關(guān)系

?是00T的要點(diǎn)之一

繼承的特點(diǎn)區(qū)I

設(shè)A為基類(lèi),B為派生類(lèi)。

1.共享性:派生類(lèi)具有基類(lèi)所有特征,

即:AuB

2.區(qū)別性:派生類(lèi)不等于基類(lèi),即AWB

3.層次性:表示了類(lèi)之間的關(guān)系

例9:車(chē)輛的繼承關(guān)系

客車(chē)

非機(jī)動(dòng)車(chē)

車(chē)輛卡車(chē)

機(jī)動(dòng)車(chē)

轎車(chē)

例10:人類(lèi)按職業(yè)劃分的一種繼承關(guān)系

學(xué)生工人教農(nóng)

師民

學(xué)

學(xué)

究講

生師

繼承的優(yōu)點(diǎn)區(qū)I1.減少原代碼,

即代碼可重用。

2.代碼的相互獨(dú)立性。

3.易于維護(hù)。

4.體現(xiàn)自然界之間

的關(guān)系。

消息(message)

什么是消息區(qū)消息是向?qū)ο蟀l(fā)出的

服務(wù)請(qǐng)求

消息的組成區(qū)I1.對(duì)象標(biāo)志

2.服務(wù)標(biāo)志

3.輸入信息

4.輸出信息

例:“請(qǐng)你理那本書(shū)拿給我!”

對(duì)象標(biāo)志:你

服務(wù)標(biāo)志:把那本書(shū)拿給我

輸入信息:那本書(shū)

輸出信息:書(shū)給我

消息的執(zhí)行流程

創(chuàng)

發(fā)

建-x

消結(jié)

應(yīng)

對(duì)

息束

消息的作用

1.提供類(lèi)之間的動(dòng)態(tài)聯(lián)系

2.對(duì)象通過(guò)消息對(duì)外提供服務(wù)

例:分析兩個(gè)對(duì)象“打印機(jī)”和

“操作系統(tǒng)”之間的消息通,

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論