版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)一次性婚紗行業(yè)市場(chǎng)深度分析及投資規(guī)劃建議報(bào)告
- 2025年高效精密數(shù)控滾齒機(jī)項(xiàng)目投資可行性研究分析報(bào)告
- 2025年中性筆芯項(xiàng)目可行性研究報(bào)告
- 四年級(jí)數(shù)學(xué)(除數(shù)是兩位數(shù))計(jì)算題專(zhuān)項(xiàng)練習(xí)及答案
- 四年級(jí)數(shù)學(xué)(小數(shù)加減運(yùn)算)計(jì)算題專(zhuān)項(xiàng)練習(xí)與答案
- 2025年電池密封圈用固定環(huán)行業(yè)深度研究分析報(bào)告
- 2025年重組酵母乙肝疫苗項(xiàng)目可行性研究報(bào)告
- 2020-2025年中國(guó)貨運(yùn)港口行業(yè)市場(chǎng)調(diào)查研究及投資戰(zhàn)略咨詢(xún)報(bào)告
- 2025年海南省旅游市場(chǎng)調(diào)查報(bào)告
- 2024-2028年中國(guó)強(qiáng)制保險(xiǎn)行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及投資戰(zhàn)略咨詢(xún)報(bào)告
- 廣東省佛山市2025屆高三高中教學(xué)質(zhì)量檢測(cè) (一)化學(xué)試題(含答案)
- 項(xiàng)目可行性研究報(bào)告評(píng)估咨詢(xún)管理服務(wù)方案1
- 5歲幼兒數(shù)學(xué)練習(xí)題
- 2024年全國(guó)體育單招英語(yǔ)考卷和答案
- 食品安全管理制度可打印【7】
- 2024年九年級(jí)語(yǔ)文中考名著閱讀《儒林外史》考前練附答案
- 抖音麗人行業(yè)短視頻直播項(xiàng)目運(yùn)營(yíng)策劃方案
- 2024年江蘇揚(yáng)州市邗城文化旅游發(fā)展有限公司招聘筆試參考題庫(kù)含答案解析
- 小學(xué)六年級(jí)數(shù)學(xué)100道題解分?jǐn)?shù)方程
- 社區(qū)獲得性肺炎護(hù)理查房?jī)?nèi)科
- 淺談提高中學(xué)生歷史學(xué)習(xí)興趣的策略
評(píng)論
0/150
提交評(píng)論