面向?qū)ο蠓椒ㄅc技術(shù):第一章 為什么面向?qū)ο骭第1頁(yè)
面向?qū)ο蠓椒ㄅc技術(shù):第一章 為什么面向?qū)ο骭第2頁(yè)
面向?qū)ο蠓椒ㄅc技術(shù):第一章 為什么面向?qū)ο骭第3頁(yè)
面向?qū)ο蠓椒ㄅc技術(shù):第一章 為什么面向?qū)ο骭第4頁(yè)
面向?qū)ο蠓椒ㄅc技術(shù):第一章 為什么面向?qū)ο骭第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

面向?qū)ο蠓椒ㄅc技術(shù)程序設(shè)計(jì)(算法、數(shù)據(jù)結(jié)構(gòu))編碼測(cè)試課程的學(xué)習(xí)目的掌握面向?qū)ο蠓椒▽W(xué)的基本原理能夠以面向?qū)ο蟮乃枷敕治龊驼J(rèn)識(shí)事物了解面向?qū)ο蠹夹g(shù)的一些具體應(yīng)用課程的學(xué)習(xí)任務(wù)認(rèn)知規(guī)律與面向?qū)ο蠓椒▽W(xué)基本原理面向?qū)ο笤碓诔绦蛟O(shè)計(jì)中的應(yīng)用

面向?qū)ο蠓治雠c設(shè)計(jì)簡(jiǎn)介

面向?qū)ο笤碓诔绦蛟O(shè)計(jì)語(yǔ)言中的體現(xiàn)

C++語(yǔ)言主要特征與語(yǔ)法面向?qū)ο蠹夹g(shù)的其它應(yīng)用需要說(shuō)明的幾個(gè)問(wèn)題關(guān)于作業(yè)與答疑關(guān)于上機(jī)實(shí)驗(yàn)關(guān)于考試參考書(shū)目《面向?qū)ο蠓椒ā肥?、宋紅高等教育出版社《UML基礎(chǔ)、案例與應(yīng)用》(第三版)

JosephSchmuller

人民郵電出版社《UML和模式應(yīng)用》(第二版)CraigLarman

機(jī)械工業(yè)出版社《設(shè)計(jì)模式—可復(fù)用面向?qū)ο筌浖幕A(chǔ)》ErichGamma、RichardHelm、RalphJohnson、JohnVlissides.機(jī)械工業(yè)出版社

目錄第1章為什么面向?qū)ο蟮?章面向?qū)ο蠹夹g(shù)的基本概念第3章面向?qū)ο蟮姆治龊驮O(shè)計(jì)第4章面向?qū)ο蟮某绦蛟O(shè)計(jì)第5章

設(shè)計(jì)模式理論及應(yīng)用第6章

面向?qū)ο蟮臄?shù)據(jù)庫(kù)第一章為什么面向?qū)ο?.0面向?qū)ο蠹夹g(shù)及其發(fā)展歷史1.1

模塊化1.2

軟件復(fù)用1.3

軟件維護(hù)

作業(yè)

1學(xué)習(xí)目的:

① 了解面向?qū)ο笏枷氘a(chǎn)生的原因

② 通過(guò)程序設(shè)計(jì)語(yǔ)言發(fā)展歷史,了解各語(yǔ)言的特點(diǎn) ③ 了解程序設(shè)計(jì)范式的演化 ④ 掌握面向?qū)ο蠓椒▽W(xué)的基本觀點(diǎn)實(shí)例實(shí)例分析——簡(jiǎn)單圖形程序問(wèn)題描述:

在顯示器上圓心坐標(biāo)為(100,100)的位置畫(huà)一個(gè)半徑為50的圓,在圓心坐標(biāo)為(200,300)的位置畫(huà)一個(gè)半徑為20的圓,在圓心坐標(biāo)為(400,150)的位置畫(huà)一條弧,弧的起始角度為30度,結(jié)束角度為120度,半徑為50。結(jié)構(gòu)化方法面向?qū)ο蠓椒ㄐ畔⒏锩暮诵募呻娐肥羌?xì)胞通訊網(wǎng)絡(luò)是動(dòng)脈計(jì)算機(jī)是大腦信息資源是血漿應(yīng)用需求是心臟安全是免疫系統(tǒng)軟件是靈魂

軟件產(chǎn)業(yè)的地位第一大產(chǎn)業(yè)面向?qū)ο笫擒浖夹g(shù)的基本指導(dǎo)思想發(fā)展過(guò)程:個(gè)人技巧->結(jié)構(gòu)化->面向?qū)ο蟾采w范圍:運(yùn)行技術(shù)工具技術(shù)過(guò)程技術(shù)兩個(gè)側(cè)面:學(xué)術(shù)界工業(yè)界具體實(shí)例:操作系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)高級(jí)語(yǔ)言開(kāi)發(fā)平臺(tái)應(yīng)用系統(tǒng)開(kāi)發(fā)技術(shù)面向?qū)ο蠹夹g(shù)的地位連接成員的機(jī)制(靜態(tài)聯(lián)結(jié)與動(dòng)態(tài)關(guān)聯(lián))生產(chǎn)軟件產(chǎn)品1.0面向?qū)ο蠹夹g(shù)及其發(fā)展歷史1.什么是面向?qū)ο蠹夹g(shù)以面向?qū)ο蠓椒▽W(xué)為基礎(chǔ)的軟件系統(tǒng)組織和結(jié)構(gòu)設(shè)計(jì)的工程技術(shù)特點(diǎn): 標(biāo)準(zhǔn)的工藝流程

統(tǒng)一的生產(chǎn)規(guī)范內(nèi)容:面向?qū)ο蠓治?面向?qū)ο笤O(shè)計(jì) 面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)部組成層次結(jié)構(gòu)思維方法知其然,知其所以然早期的軟件開(kāi)發(fā)硬件環(huán)境:CPU為核心,存貯量小應(yīng)用特點(diǎn):科學(xué)計(jì)算,計(jì)算量大,輸入輸出量小主要對(duì)象:小型程序,順序程序軟件開(kāi)發(fā):方式:個(gè)體工作方法:個(gè)人技巧準(zhǔn)則:執(zhí)行功效2.從“軟件工程”的發(fā)展史看面向?qū)ο蠹夹g(shù)出現(xiàn)的必然性1.0面向?qū)ο蠹夹g(shù)及其發(fā)展歷史平臺(tái)和應(yīng)用需求變化硬件環(huán)境:外部設(shè)備發(fā)展迅速應(yīng)用特點(diǎn):非數(shù)值應(yīng)用,計(jì)算量小,輸入輸出量大主要問(wèn)題:大型程序,并發(fā)程序

軟件危機(jī)軟件開(kāi)發(fā):方式:合作開(kāi)發(fā)需求方法:新方法的探討準(zhǔn)則:執(zhí)行工效+易理解性+開(kāi)發(fā)工效結(jié)果:結(jié)構(gòu)化方法+軟件工程1.0面向?qū)ο蠹夹g(shù)及其發(fā)展歷史2.從“軟件工程”的發(fā)展史看面向?qū)ο蠹夹g(shù)出現(xiàn)的必然性回顧結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)思索:

以C語(yǔ)言的廣泛應(yīng)用為代表的結(jié)構(gòu)化編程(SP:StructureProgram)方法,為什么會(huì)成為解決六七十年代軟件危機(jī)的利器?functiondecomposition!(功能分解)SP開(kāi)發(fā)的特點(diǎn) 函數(shù)

模塊

分層模型回顧結(jié)構(gòu)化編程用SP開(kāi)發(fā)軟件的基本方法:一棵龐大無(wú)比的大樹(shù)!自頂向下/自底向上逐步細(xì)化SP的痛苦復(fù)用困難牽一發(fā)而動(dòng)全身為了適應(yīng)變化,要精心設(shè)計(jì)函數(shù)接口,導(dǎo)致函數(shù)接口的日益復(fù)雜.int

SetWindowRgn(HWND

hWnd,//handletowindowHRGNhRgn,//handletoregionBOOL

bRedraw//windowredrawoption);實(shí)例:Win32API那可怕的幾千個(gè)C語(yǔ)言形式接口的函數(shù)現(xiàn)實(shí)世界抽象客觀對(duì)象=>基本成分相互聯(lián)系=>連接/協(xié)同概念描述=>表達(dá)方式計(jì)算世界抽象數(shù)據(jù)操作<=屬性行為方法調(diào)用<=通信聯(lián)系類與繼承<=按類分層面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ɑ緳C(jī)制對(duì)象與交互類與繼承多態(tài)與動(dòng)態(tài)綁定

基本含義所謂面向?qū)ο缶褪腔趯?duì)象概念,以對(duì)象為中心,以類和繼承為構(gòu)造機(jī)制,充分利用多態(tài)和動(dòng)態(tài)綁定提供靈活性,來(lái)認(rèn)識(shí)、理解刻劃客觀世界和設(shè)計(jì),構(gòu)建相應(yīng)的軟件系統(tǒng)主要特征綜合了平臺(tái)人問(wèn)題三要素縮小差異:

問(wèn)題空間認(rèn)知空間機(jī)器平臺(tái)發(fā)展過(guò)程60年代后期:Simula67,基本思想70年代后期:Smalltalk80,實(shí)用化80年代:C++,Eiffel商業(yè)化90年代:設(shè)計(jì)與分析,全面發(fā)展機(jī)器語(yǔ)言助記符語(yǔ)言匯編語(yǔ)言面向機(jī)器直接控制機(jī)器的運(yùn)行1.0面向?qū)ο蠹夹g(shù)及其發(fā)展歷史2.從“軟件工程”的發(fā)展史看面向?qū)ο蠹夹g(shù)出現(xiàn)的必然性面向機(jī)器FORTRANBASIC面向過(guò)程描述解題過(guò)程CPASCAL結(jié)構(gòu)化程序設(shè)計(jì)以控制結(jié)構(gòu)表示程序的物理層次結(jié)構(gòu)C++Java面向?qū)ο蟪绦蛟O(shè)計(jì)程序設(shè)計(jì)過(guò)程與人類的認(rèn)知過(guò)程統(tǒng)一面向過(guò)程結(jié)構(gòu)化程序設(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蠹夹g(shù)的基本特點(diǎn)以類而不是函數(shù)成為程序的基本組成單位使用繼承與組合提高軟件復(fù)用度引入多態(tài)等特性可開(kāi)發(fā)出靈活多變的系統(tǒng)引入CASE(計(jì)算機(jī)輔助軟件工程)可以自動(dòng)由UML圖符轉(zhuǎn)化為框架代碼……結(jié)論:OO成為主流是技術(shù)發(fā)展的必然趨勢(shì)!1.0面向?qū)ο蠹夹g(shù)及其發(fā)展歷史3.面向?qū)ο蠓椒▽W(xué)基本內(nèi)涵客觀世界的事物由各種各樣的實(shí)體(對(duì)象)構(gòu)成每個(gè)對(duì)象都有各自的內(nèi)部狀態(tài)和運(yùn)動(dòng)(狀態(tài))規(guī)律根據(jù)對(duì)象的屬性和運(yùn)動(dòng)規(guī)律的相似性可以將對(duì)象分類復(fù)雜對(duì)象由相對(duì)簡(jiǎn)單的對(duì)象組成不同對(duì)象的組合及其間的相互作用和聯(lián)系構(gòu)成了系統(tǒng)對(duì)象間的相互作用通過(guò)消息傳遞,對(duì)象根據(jù)所接收到的消息做出自身的反應(yīng)1.0面向?qū)ο蠹夹g(shù)及其發(fā)展歷史4.認(rèn)知規(guī)律歸納: 從特殊到一般的思維過(guò)程演繹: 從一般到特殊的思維過(guò)程形象思維: 從一公理體系出發(fā),根據(jù)定理、定律等使用歸納及演繹進(jìn)行推理,從而解決給定問(wèn)題。邏輯思維: 從多個(gè)具有共性的解決問(wèn)題的過(guò)程,發(fā)現(xiàn)解決這類問(wèn)題的通用方法認(rèn)知深度: 先一般、總體,后特殊、具體認(rèn)知廣度: 根據(jù)事物之間的聯(lián)系,將認(rèn)識(shí)的焦點(diǎn)從一個(gè)事物轉(zhuǎn)移到另一個(gè)事物,從而擴(kuò)大視野認(rèn)知連續(xù)性: 認(rèn)識(shí)的深入具有連續(xù)性,在繼承已有知識(shí)的基礎(chǔ)上進(jìn)行新認(rèn)識(shí)。天下烏鴉一般黑歸納演繹1.1

模塊化在程序?qū)崿F(xiàn)中將一些密切相關(guān)的操作和數(shù)據(jù)以某種風(fēng)格匯集在一起,形成相對(duì)獨(dú)立的整體。模塊2模塊1模塊化的特征在于抽象和信息隱藏抽象結(jié)構(gòu)抽象

劃分方式與客觀事物本來(lái)面目相對(duì)應(yīng)信息隱藏內(nèi)部信息的訪問(wèn)必須通過(guò)接口數(shù)據(jù)抽象過(guò)程抽象1.1

模塊化模塊化設(shè)計(jì)遵守的準(zhǔn)則:分解與組合可分解性: 可分解性在某種意義上講標(biāo)志著大型系統(tǒng)描述的難易程度。處理復(fù)雜應(yīng)用系統(tǒng)的有效方法就是對(duì)該系統(tǒng)根據(jù)某種方法進(jìn)行分解,再分解,直至所得到的模塊足夠的簡(jiǎn)單,以便分配給不同開(kāi)發(fā)者去編程描述??山M合性: 可組合性的含義有二:其一是對(duì)當(dāng)前應(yīng)用系統(tǒng)而言,分解后的模塊可以組合在一起構(gòu)成該應(yīng)用系統(tǒng);其二是分解出的一些模塊可以重用以構(gòu)成其它系統(tǒng)??衫斫庑裕?將復(fù)雜應(yīng)用系統(tǒng)分解成模塊的意義是得到有低復(fù)雜程度模塊構(gòu)成的應(yīng)用系統(tǒng),這些模塊是易理解的,否則并沒(méi)有減低描述的復(fù)雜性。可理解性對(duì)于軟件維護(hù)也是十分必要的,只有各模塊是易于理解的才是易維護(hù)的。分解組合1.2軟件重用面向?qū)ο蠹夹g(shù)的發(fā)展使得軟件重用技術(shù)更臻完善和規(guī)范:多種重用方式:子程序(Subroutine)、程序包(Package)、庫(kù)(Library)重用可以大大低減低軟件開(kāi)發(fā)的勞動(dòng)強(qiáng)度,可以說(shuō)軟件重用是軟件工程技術(shù)發(fā)展而必不可少的,正是因?yàn)檐浖哂兄赜眯裕覀儾艜?huì)有操作系統(tǒng)等。對(duì)象的封裝使得對(duì)象模塊在程序開(kāi)發(fā)者看來(lái)是一個(gè)黑匣子,它只需通過(guò)接口去操作對(duì)象和理解對(duì)象的行為,而不必關(guān)心其內(nèi)部實(shí)現(xiàn)細(xì)節(jié),從而程序開(kāi)發(fā)人員能夠直接重用已經(jīng)開(kāi)發(fā)的對(duì)象模塊對(duì)象的繼承在另一個(gè)角度提供了軟件重用方式,即通過(guò)繼承允許程序開(kāi)發(fā)者自己的對(duì)象重用具有相同特性的其它對(duì)象的代碼面向?qū)ο蠹夹g(shù)中的COM(ComponentObjectModel)等提供了將對(duì)象模塊組裝在一起的統(tǒng)一機(jī)制和方法,利用他們應(yīng)用程序開(kāi)發(fā)人員可以方便地利用已有的對(duì)象模塊組合在一起,構(gòu)造出更大規(guī)模的應(yīng)用程序1.3軟件維護(hù)提供封裝、繼承、多態(tài)性、延遲技術(shù)手段使得程序的修改等限制在一個(gè)較小的范圍面向?qū)ο蟪绦蜷_(kāi)發(fā)過(guò)程與人類認(rèn)識(shí)事物的過(guò)程相一致,各階段的表述方式相統(tǒng)一,便于維護(hù)第二章面向?qū)ο蠹夹g(shù)的概念2.0什么是面向?qū)ο?.1什么是對(duì)象2.2

對(duì)象繼承2.3多態(tài)性與動(dòng)態(tài)綁定2.4

消息2.5對(duì)象的語(yǔ)義約束學(xué)習(xí)目的:

① 掌握類、對(duì)象、消息、繼承等概念的內(nèi)涵

② 了解對(duì)象的形態(tài)特征 ③ 理解面向?qū)ο蠹夹g(shù)中對(duì)象之間相互作用機(jī)制的描述 ④ 能夠初步使用面向?qū)ο蠓椒▽W(xué)基本觀點(diǎn)分析客觀事物2.0什么是面向?qū)ο驝oad和Yourdon給出了一個(gè)定義:“面向?qū)ο?對(duì)象+類+繼承+通信”。如果一個(gè)軟件系統(tǒng)是使用這樣4個(gè)概念設(shè)計(jì)和實(shí)現(xiàn)的,則我們認(rèn)為這個(gè)軟件系統(tǒng)是面向?qū)ο蟮?。一個(gè)面向?qū)ο蟮某绦虻拿恳怀煞輵?yīng)是對(duì)象,計(jì)算是通過(guò)新的對(duì)象的建立和對(duì)象之間的通信來(lái)執(zhí)行的。OO原則Abstraction(抽象)Encapsulation(封裝)Modularity(模塊化)Hierarchy(分層)OO三大要素封裝繼承多態(tài)2.1什么是對(duì)象對(duì)象的含義是什么?

對(duì)象

Object在不同場(chǎng)合具有不同的含義:對(duì)象是面向?qū)ο箝_(kāi)發(fā)模式的基本成份。每個(gè)對(duì)象可用它本身的一組屬性和它可以執(zhí)行的一組操作來(lái)定義。對(duì)象屬性一般只能通過(guò)執(zhí)行對(duì)象的操作來(lái)改變。操作又稱為方法或服務(wù),它描述了對(duì)象執(zhí)行的功能,若通過(guò)消息傳遞,還可以為其它對(duì)象使用。姓名:Jack年齡:28體重:65kgs型號(hào):Ferrari顏色:Red年份:1995動(dòng)作:走路說(shuō)話睡覺(jué)

動(dòng)作:啟動(dòng)停止加速

對(duì)象:電視機(jī)—封裝InternalState對(duì)象的例子:TV開(kāi)請(qǐng)求變更頻道調(diào)節(jié)聲音TurnOnTurnOffChangeChannelAdjustVolumeOthers...被封裝的行為和狀態(tài)關(guān)請(qǐng)求2.1.1對(duì)象數(shù)據(jù)封裝2.1.2

對(duì)象類和對(duì)象實(shí)例2.1.3對(duì)象間的相互作用2.1什么是對(duì)象2.1.1對(duì)象數(shù)據(jù)封裝ⅰ問(wèn)題空間 所有要研究的客觀現(xiàn)實(shí)的全體稱為問(wèn)題空間或問(wèn)題域,而把要研究的問(wèn)題 (客觀世界中的實(shí)體)稱之為問(wèn)題空間的對(duì)象

任何一個(gè)客觀實(shí)體都是對(duì)象對(duì)象的組成相互作用ⅱ解空間 所有的解(程序及執(zhí)行程序的計(jì)算機(jī))組成的集合稱為解空間,把解(程 序及執(zhí)行程序的計(jì)算機(jī)實(shí)體)稱做解空間的對(duì)象

對(duì)可解問(wèn)題空間對(duì)象至少有一個(gè)解空間對(duì)象與其相對(duì)應(yīng)ⅲ封裝 將客觀事物抽象為一個(gè)相對(duì)獨(dú)立的實(shí)體,其中含有該事物的屬性及行為2.1.1對(duì)象數(shù)據(jù)封裝ⅳ對(duì)象的形態(tài)與靜態(tài)特征問(wèn)題空間對(duì)象圖書(shū)1MyBook1:CBook書(shū)名:程序設(shè)計(jì)總頁(yè)數(shù):280版本:2m_pczName:char*=“程序設(shè)計(jì)”nTotalPage:int=280nEdition:int=2返回書(shū)名返回總頁(yè)數(shù)返回版本號(hào)char*GetBookName();int

GetTotalPage();int

GetEdition();分析中的對(duì)象設(shè)計(jì)中的對(duì)象人、學(xué)生、學(xué)校、班級(jí)、處、電視、汽車……等都可以被看作對(duì)象地址內(nèi)容屬性名地址增加方向......00C6計(jì)BCE8設(shè)C9F2序D0CC程003B0870B3...00m_nEdition(int類型)(版本)00000012FF6C0200m_nPages(int類型)(總頁(yè)數(shù))00010012FF681800m_pczName(char*類型)(書(shū)名)3B080012FF64702.1.1對(duì)象數(shù)據(jù)封裝ClassCBook{char*m_pczName;

int

m_nPages;

int

m_nEdition;……}……CBookb;解空間對(duì)象人類認(rèn)識(shí)世界的認(rèn)知規(guī)律之一:…根據(jù)對(duì)象的屬性和運(yùn)動(dòng)規(guī)律的相似性分類認(rèn)識(shí)和描述相似屬性和功能相似的對(duì)象構(gòu)成對(duì)象類任何一個(gè)具體的對(duì)象都是相應(yīng)對(duì)象類的一個(gè)實(shí)例類與對(duì)象的不同←→類的實(shí)例化2.1.2對(duì)象類和對(duì)象實(shí)例對(duì)象和類抽象為多邊形類屬性:

頂點(diǎn)

邊的顏色

填充的顏色

方法:

繪制

抹去

移動(dòng)多邊形對(duì)象2.1.3對(duì)象間相互作用2.對(duì)象的動(dòng)態(tài)特征動(dòng)態(tài)對(duì)象包含兩個(gè)含義: 對(duì)每個(gè)對(duì)象而言,其內(nèi)部狀態(tài)是變化的,對(duì)象上發(fā)生的事件可能導(dǎo)致對(duì)象內(nèi)部狀態(tài)值的改變,這種變化與事件發(fā)生時(shí)對(duì)象所處的狀態(tài)有關(guān),與所發(fā)生的具體事件有關(guān) 不同事件之間往往會(huì)構(gòu)成一個(gè)時(shí)間、因果鏈條,它們從另一個(gè)角度描繪出對(duì)象狀態(tài)隨時(shí)間變化的規(guī)律。123event1event2打?。ㄎ募打印機(jī)空閑]打?。ㄎ募打印機(jī)忙]暫存(文件):計(jì)算機(jī)類:打印服務(wù)器類:打印機(jī)類:打印隊(duì)列類打印(文件)2.2對(duì)象繼承2.2.1父類和子類2.2.2多重繼承2.2.3關(guān)于繼承的討論人類對(duì)事物分類后,從某種角度觀察,不同類之間具有一定的聯(lián)系。人類認(rèn)識(shí)事物從對(duì)象個(gè)體、類的認(rèn)識(shí),通過(guò)事務(wù)間關(guān)聯(lián),進(jìn)一步深入去認(rèn)識(shí)其它事物,通過(guò)對(duì)不同事物間關(guān)系的描述建立系統(tǒng)的層次結(jié)構(gòu)。人類對(duì)某一新事物的認(rèn)知經(jīng)常建立在已經(jīng)獲取的一些認(rèn)知結(jié)論的基礎(chǔ)上,類似的情形同樣常發(fā)生在對(duì)事物的描述中,比如對(duì)一個(gè)新事物的描述通常都將嘗試應(yīng)用業(yè)已存在的理論或方法。對(duì)于人類的這種行為以及類之間關(guān)系的描述,面向?qū)ο蠹夹g(shù)給予充分的技術(shù)支持。2.2.1父類和子類1一般—特殊結(jié)構(gòu)人類對(duì)事物進(jìn)行分類后,在概念上,一些種類的事物之間存在著聯(lián)系,一些類之間在行為、屬性等方面具有部分相似性,其間存在一般與特殊的對(duì)應(yīng)關(guān)系:汽車與轎車、學(xué)生與班委會(huì)……這種關(guān)系不存在于具體對(duì)象實(shí)例之間,而存在于對(duì)象類之間。一般性寓于特殊性之中,體現(xiàn)在一般類對(duì)象所具有的屬性和操作包含于特殊類對(duì)象之中。汽車轎車客車卡車汽車轎車客車卡車2.2.1父類和子類2父類—子類(繼承、派生)一般類B特殊類A特殊類的每個(gè)對(duì)象都為一般類的實(shí)例,因此特殊類的對(duì)象必將具有相應(yīng)的一般類的屬性和操作—特殊類這種獲取屬性和方法的方式稱為繼承由于特殊類(對(duì)象)具有一般類的所有屬性和操作,所以特殊類的任何一個(gè)對(duì)象必定是相應(yīng)一般類的對(duì)象,因此這種關(guān)系又常稱為IS_A_KIND_OF關(guān)系如果類A具有類B的全部屬性和操作,并且具有一些自己獨(dú)特的屬性和操作,那么A稱作B的特殊類,B稱作A的一般類通過(guò)在已有類的基礎(chǔ)上添加一些特殊的屬性和操作形成新類的方式—稱為派生CPersonCStudentChar*NameIntNumber

動(dòng)物昆蟲(chóng)哺乳動(dòng)物爬行動(dòng)物兩棲動(dòng)物2.2.2多重繼承單一繼承―多重繼承一般類一般類特殊類WNDSTRUCTCWindowTreeCScreenObjectCEditTextCWnd一般類特殊類特殊類一些事物同時(shí)具有其它多類事物的屬性和行為,在面向?qū)ο蠹夹g(shù)中采用多重繼承描述:父母與孩子、在職研究生與教師和研究生類等2.2.3關(guān)于繼承的討論1派生是人類認(rèn)識(shí)的深入新的認(rèn)知經(jīng)常建立在已有認(rèn)知的基礎(chǔ)上,在已有知識(shí)的基礎(chǔ)上通過(guò)進(jìn)行新探索、新認(rèn)識(shí),在原有描述中添加新成分形成新認(rèn)識(shí)的描述描述過(guò)程的進(jìn)行應(yīng)與人類認(rèn)知過(guò)程同步,人類的認(rèn)知,從一般的、抽象的轉(zhuǎn)移到具體的、特殊的認(rèn)知過(guò)程,形成這些新認(rèn)識(shí),達(dá)到認(rèn)知的深入。描述時(shí)應(yīng)該在原有描述的基礎(chǔ)上,通過(guò)添加新的知識(shí)成分形成對(duì)新事物的認(rèn)知。這種描述過(guò)程表現(xiàn)了認(rèn)知的深入。鳥(niǎo)類北京麻雀東北麻雀南方麻雀麻雀類孔雀類…

……

…2.2.3關(guān)于繼承的討論2繼承代表著認(rèn)識(shí)的連續(xù)性人教師學(xué)生男學(xué)生女學(xué)生新描述繼承已有描述中的有益部分,去處無(wú)用部分,添加新成分,表明人類的認(rèn)識(shí)不是一種階躍式的,而是連續(xù)的,不斷的發(fā)展,逐步實(shí)現(xiàn)對(duì)客觀事物的最全面的認(rèn)識(shí)。描述教師人員位置分布2.2.3關(guān)于繼承的討論3類層次關(guān)系給出軟件的層次結(jié)構(gòu)模型線段矩形橢圓三角形正方形圓圖形開(kāi)放圖形線段封閉圖形多邊形三角形矩形正方形橢圓形圓形由于類的繼承與派生關(guān)系表明人類的認(rèn)知過(guò)程和結(jié)果,因此給出客觀事物按照人類的認(rèn)知規(guī)律的層次結(jié)構(gòu)圖。由于與人類認(rèn)知的最一般規(guī)律相吻合,因此具有較高的可理解性(優(yōu)于結(jié)構(gòu)化程序設(shè)計(jì))2.3多態(tài)性與動(dòng)態(tài)綁定1.多態(tài)性人類思維和描述中經(jīng)常使用同一個(gè)名字代表不同的事物,客觀事物也往往具有多重身份,在不同的場(chǎng)合顯現(xiàn)出不同的形態(tài)。如:+、操作(函數(shù))等。面向?qū)ο笾惺褂枚鄳B(tài)性表述這種習(xí)慣。多態(tài)性的含義:一個(gè)標(biāo)識(shí)符標(biāo)識(shí)多個(gè)語(yǔ)義。類:Shape方法:DrawMoveInitialise子類2.3多態(tài)性與動(dòng)態(tài)綁定2綁定(Binding)標(biāo)識(shí)符與所對(duì)應(yīng)實(shí)體間的對(duì)應(yīng)稱為綁定(聯(lián)編、映射、聚束等)靜態(tài)綁定函數(shù)的重載等,編譯器在編譯時(shí)刻通過(guò)對(duì)所調(diào)用函數(shù)參數(shù)的分析,可以確定所與調(diào)用函數(shù)相對(duì)應(yīng)具體實(shí)現(xiàn),然后用函數(shù)具體實(shí)現(xiàn)代碼的物理地址代替函數(shù)調(diào)用。靜態(tài)聯(lián)編的特點(diǎn)是可執(zhí)行程序運(yùn)行速度快,因?yàn)楹瘮?shù)調(diào)用與具體實(shí)現(xiàn)的對(duì)應(yīng)是在編譯時(shí)刻決定的,在程序運(yùn)行時(shí)刻的開(kāi)銷僅僅是參數(shù)的傳遞、執(zhí)行函數(shù)的調(diào)用、棧的清除等,沒(méi)有額外的運(yùn)行開(kāi)銷。動(dòng)態(tài)綁定(聯(lián)編、映射、聚束等)動(dòng)態(tài)綁定將標(biāo)識(shí)符與其所對(duì)應(yīng)實(shí)體之間的對(duì)應(yīng)關(guān)系的確定放置到程序的運(yùn)行過(guò)程中進(jìn)行。當(dāng)遇到標(biāo)識(shí)符時(shí)根據(jù)引用的具體情況進(jìn)行相應(yīng)的調(diào)用。2.3多態(tài)性與動(dòng)態(tài)綁定2.綁定CCircleArea(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論