從面向?qū)ο蟮矫嫦騙第1頁(yè)
從面向?qū)ο蟮矫嫦騙第2頁(yè)
從面向?qū)ο蟮矫嫦騙第3頁(yè)
從面向?qū)ο蟮矫嫦騙第4頁(yè)
從面向?qū)ο蟮矫嫦騙第5頁(yè)
從面向?qū)ο蟮矫嫦騙第6頁(yè)
從面向?qū)ο蟮矫嫦騙第7頁(yè)
從面向?qū)ο蟮矫嫦騙第8頁(yè)
從面向?qū)ο蟮矫嫦騙第9頁(yè)
從面向?qū)ο蟮矫嫦騙第10頁(yè)
資源描述:

《從面向?qū)ο蟮矫嫦颉酚蓵?huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、從面向?qū)ο蟮矫嫦駽OM主講葉長(zhǎng)青華東師大教育信息技術(shù)學(xué)系2006-3-1麗娃河畔ycq@deit.ecnu.edu.cn本課的內(nèi)容及目標(biāo)內(nèi)容:面向?qū)ο蟮囊话愀拍顝拿嫦驅(qū)ο蟮矫嫦駽OMCOM組件技術(shù)目標(biāo):了解程序設(shè)計(jì)技術(shù)的發(fā)展動(dòng)向提升程序設(shè)計(jì)能力開(kāi)闊專業(yè)視野課程參考書(shū)目《COM原理與應(yīng)用》《COM本質(zhì)論》《COM技術(shù)內(nèi)幕》《AdvancedCORBAProgrammingwithC++》面向?qū)ο蟮幕靖拍顬楣?jié)省每一個(gè)字節(jié)而努力的階段例:用PASCAL語(yǔ)句寫(xiě)成的程序段A[I]:=A[I]+A[T];A[T]:=A[I]–A[T];A[I]:=A[I]–A[T];目的是什么?我們現(xiàn)在習(xí)

2、慣的寫(xiě)法是什么?不關(guān)心“空間的浪費(fèi)”,更關(guān)心程序的清晰框架結(jié)構(gòu)階段例:用FORTRAN語(yǔ)言編寫(xiě)的程序段DO5I=1,NDO5J=1,N5V(I,J)=(I/J)*(J/I)程序設(shè)計(jì)的發(fā)展歷程IF(X.LT.Y)GOTO30IF(Y.LT.Z)GOTO50SMALL=ZGOTO7030IF(X.LT.Z)GOTO60SMALL=ZGOTO7050SMALL=YGOTO7060SMALL=X70CONTINUESMALL=XIF(Y.LT.SMALL)SMALL=YIF(Z.LT.SMALL)SMALL=ZX,Y,Z注重“重用性”的問(wèn)題。面向?qū)ο笞⒅亍皹?biāo)準(zhǔn)化元件”的階段。面向組件?軟

3、件企業(yè)分工細(xì)化階段類是具有相同屬性特征事物的集合。計(jì)算機(jī)專業(yè)語(yǔ)境下,類是封裝了狀態(tài)(變量)和操作(對(duì)變量處理的過(guò)程和函數(shù))的抽象數(shù)據(jù)類型。(對(duì)應(yīng)于標(biāo)準(zhǔn)數(shù)據(jù)類型)對(duì)象是實(shí)例,它反映了具體的事物。鳥(niǎo),是類的概念。麻雀是鳥(niǎo)類的一個(gè)實(shí)例。一只麻雀?對(duì)象由類來(lái)定義一個(gè)對(duì)象可以與多個(gè)具有繼承關(guān)系的類相聯(lián)系,即:A是一個(gè)類,B、C、D是在A的基礎(chǔ)上擴(kuò)展后的新類,E,F(xiàn),G則是在C類的基礎(chǔ)上發(fā)展而來(lái),而對(duì)象x是F類的一個(gè)實(shí)例。有關(guān)術(shù)語(yǔ)封裝、繼承與多態(tài)封裝、繼承與多態(tài)面向?qū)ο蟾拍畹娜齻€(gè)關(guān)鍵詞封裝是實(shí)現(xiàn)面向?qū)ο蟪绦蛟O(shè)計(jì)的第一步,封裝就是將數(shù)據(jù)或函數(shù)等集合在一個(gè)個(gè)的單元中(我們稱之為類)。C++對(duì)類和

4、對(duì)象的描述:Classstudent{Public:成員函數(shù)1;成員函數(shù)2;……Private:成員變量1;成員變量2;……}Intx,y;Studentz;類名例一:C++中類的定義與實(shí)現(xiàn)說(shuō)明:包含成員變量,成員函數(shù),類的定義,對(duì)象的定義。例二、例三:成員函數(shù)在類內(nèi)、類外實(shí)現(xiàn)的情形例四:成員函數(shù)是私有函數(shù)時(shí)的存取特性與意義封裝的意義在于保護(hù)或者防止代碼(數(shù)據(jù))被我們無(wú)意中破壞。在面向?qū)ο蟪绦蛟O(shè)計(jì)中數(shù)據(jù)被看作是一個(gè)中心的元素并且和使用它的函數(shù)結(jié)合的很密切,從而保護(hù)它不被其它的函數(shù)意外的修改。從程序語(yǔ)言角度來(lái)看,在一個(gè)對(duì)象中代碼和(或)數(shù)據(jù)可以是這個(gè)對(duì)象私有的,不能被對(duì)象外的部分直

5、接訪問(wèn)。因而對(duì)象提供了一種高級(jí)保護(hù)以防止程序被無(wú)關(guān)部分錯(cuò)誤修改或錯(cuò)誤地使用了對(duì)象的私有部分。當(dāng)從對(duì)象外部試圖直接對(duì)受保護(hù)的內(nèi)部數(shù)據(jù)進(jìn)行修改時(shí),將被程序拒絕,只有通過(guò)對(duì)象所提供的對(duì)外服務(wù)函數(shù)才能夠?qū)ζ鋬?nèi)部數(shù)據(jù)進(jìn)行必要的加工,從而保證了數(shù)據(jù)加工的合法性。從這一意義上講,把這種代碼和數(shù)據(jù)的聯(lián)系稱為“封裝”。換句話說(shuō),封裝是將對(duì)象封閉保護(hù)起來(lái),是將內(nèi)部細(xì)節(jié)隱蔽起來(lái)的能力。實(shí)現(xiàn)的細(xì)節(jié)是“可變的部分”。如果“塊”是單個(gè)類,那么可變的部分通常用private:或protected:關(guān)鍵字來(lái)封裝?!胺€(wěn)定的部分”是接口。好的接口提供了一個(gè)以用戶的詞匯簡(jiǎn)化了的視圖,并且被從外到里的設(shè)計(jì)。(此處的“用

6、戶”是指其它開(kāi)發(fā)者,而不是購(gòu)買(mǎi)完整應(yīng)用的最終用戶)。設(shè)計(jì)一個(gè)清晰的接口并且將實(shí)現(xiàn)和接口分離,只不過(guò)是允許用戶使用接口并強(qiáng)迫用戶使用接口。如何才能防止其它程序員查看我的類的私有部分而破壞封裝?討論只要其它程序員寫(xiě)的代碼不依賴于他們的所見(jiàn),那么即使它們看了你的類的private:和/或proteced:部分,也不會(huì)破壞封裝。換句話說(shuō),封裝不會(huì)阻止人認(rèn)識(shí)類的內(nèi)部。封裝只是防止他們寫(xiě)出依賴類內(nèi)部實(shí)現(xiàn)的代碼。倘若他們寫(xiě)的代碼依賴于接口而不是實(shí)現(xiàn),就不會(huì)增加維護(hù)成本。不必這么做——封裝是對(duì)于代碼而言的,而不是對(duì)人。封裝是一種安全裝置嗎?封裝要防止的是錯(cuò)誤,而不是間諜封裝!=安全。錢(qián)掉了!成員

7、函數(shù)、成員變量中的另類例五:構(gòu)造函數(shù)例六:析構(gòu)函數(shù)例七:何時(shí)使用構(gòu)造函數(shù)例八:友元函數(shù)例九:靜態(tài)變量2005-9-30繼承的概念及重要性inheritance:是軟件重用的一種形式,將相關(guān)的類組織起來(lái),并分亨其間的共通數(shù)據(jù)和操作行為。最具吸引力的特點(diǎn):新類可以從現(xiàn)有的類庫(kù)中繼承。提倡建立與現(xiàn)有的類有許多共性的新類,添加基類的所沒(méi)有的特點(diǎn)以及取代和改進(jìn)從基類繼承來(lái)的特點(diǎn)來(lái)實(shí)現(xiàn)軟件的重用單重繼承形成樹(shù)狀層次結(jié)構(gòu),由基類和派生類構(gòu)成了一種層次關(guān)系,繼承的層次在系統(tǒng)的限制范圍內(nèi)是任意的。

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。