4 面向?qū)ο蠓椒ǜ耪揰第1頁(yè)
4 面向?qū)ο蠓椒ǜ耪揰第2頁(yè)
4 面向?qū)ο蠓椒ǜ耪揰第3頁(yè)
4 面向?qū)ο蠓椒ǜ耪揰第4頁(yè)
4 面向?qū)ο蠓椒ǜ耪揰第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、北京大學(xué)軟件和微電子學(xué)院面向?qū)ο蠹夹g(shù)高級(jí)課程第一部分:面向?qū)ο蠓椒ㄊY嚴(yán)冰、大綱、1 .面向?qū)ο蠓椒ㄒ郧暗臍v史2 .面向?qū)ο蠓椒ǖ陌l(fā)生和發(fā)展3 .面向?qū)ο蠓椒ǖ幕驹? .面向?qū)ο蠓椒ǖ膬?yōu)勢(shì)關(guān)鍵詞3360膠囊信息隱藏了多元相關(guān)信息, 1 .面向?qū)ο蠓椒ǖ臍v史編程語(yǔ)言的發(fā)展,軟件工程的作用,功能分解數(shù)據(jù)實(shí)體狀態(tài)規(guī)則,不同的軟件開發(fā)模型(模擬觀察和現(xiàn)實(shí)的方式),對(duì)象語(yǔ)言的發(fā)展歷史,函數(shù)集約多重利他空間模塊(Module ) 共有私有無實(shí)例化抽象數(shù)據(jù)型實(shí)例化對(duì)象信息傳遞一般化多樣性Init() Push() Pop (),發(fā)展,2 .對(duì)象指向方法的誕生和發(fā)展, OOP首先是60年代挪威計(jì)算中心開發(fā)的

2、面向Simula67對(duì)象語(yǔ)言的先驅(qū)和第一個(gè)里程碑80年代初首次面向?qū)嵱脤?duì)象語(yǔ)言的Smalltalk80從80年代中期到90年代,面向?qū)ο笳Z(yǔ)言繁榮的時(shí)代很多比較實(shí)用的OOPL 現(xiàn)在,將語(yǔ)言、類庫(kù)、視覺編程環(huán)境組合起來的方式一般被采用。 例如,Visual C、Visual Basic、Delhpi、Java等。 OOA int l=s.length (); 為什么信息會(huì)引起一定的延遲呢? 說明1:中的每條消息都必須發(fā)送給指定的收件人,消息的說明取決于收件人嗎? 為了解釋2:虛擬方法,需要檢查虛擬表。 非虛擬方法有同樣的問題嗎?消息的編譯原理,將一個(gè)c語(yǔ)言類翻譯成c語(yǔ)言段,主要是將c語(yǔ)言類的所有非

3、靜態(tài)屬性構(gòu)成為一個(gè)c語(yǔ)言的結(jié)構(gòu)類型,將類的名稱作為結(jié)構(gòu)類型的名稱類的靜態(tài)屬性,該類的所有對(duì)象共享: 應(yīng)該翻譯成c的全局變量,但是必須更改名稱c語(yǔ)言類的對(duì)象聲明不翻譯,變成c語(yǔ)言的對(duì)應(yīng)結(jié)構(gòu)型的變量聲明,將消息的編譯原理、c語(yǔ)言類的非靜態(tài)方法翻譯成c語(yǔ)言函數(shù),對(duì)應(yīng)的方法和函數(shù)this出現(xiàn)在函數(shù)體上的函數(shù)調(diào)用也必須增加方法中對(duì)本對(duì)象的非靜態(tài)屬性的訪問,改變?yōu)閷?duì)this兼容域的訪問。 方法不需要修改訪問其他對(duì)象的非靜態(tài)屬性的類的靜態(tài)方法,必須在定義和調(diào)用位置更改名稱,消息的編譯原理,類c的方法m被翻譯為函數(shù)fm,消息的編譯原理,class point 公共:語(yǔ)音轉(zhuǎn)換(雙偏移,雙偏移) xc=x _偏移

4、; yc =y_offset; void scale (雙因子) xc *=因子; yc *=factor; 點(diǎn)(雙倍x0=0,雙倍y0=0) xc=x 0; yc=y0; void set (雙倍x 0,雙倍y0) xc=x 0; yc=y0; 雙x (語(yǔ)音)返回xc; 雙倍(語(yǔ)音)返回YC; double dist (點(diǎn)、委托、消息、工作可以從一個(gè)對(duì)象傳遞到另一個(gè)對(duì)象。 建設(shè)工廠是公司主席、首席執(zhí)行官、承包商、泛化、泛化是面向?qū)ο蠓椒ǖ闹匾拍?,可以大幅度提高軟件開發(fā)效率。 也稱為繼承、一般-特殊結(jié)構(gòu)。 泛化關(guān)系是一種關(guān)系。 類對(duì)象可以細(xì)分為更多子類,原來的類(父類)和子類之間的關(guān)系是泛化

5、關(guān)系。 父類被稱為子類的泛化,子類被稱為父類的特化。 多態(tài)性,鴨口獸(platypus )鴨口獸僅分布于澳大利亞南部和塔斯馬尼亞島。 像鳥一樣,像爬行動(dòng)物,是非常奇怪的哺乳動(dòng)物。 卵生哺乳動(dòng)物。 有圓毛,分泌真正的乳汁、卵生。 多態(tài)性、多態(tài)性(Polymorphism )一詞來源于希臘語(yǔ)的polumorphos,意味著具有多種形式和形態(tài)。 在面向?qū)ο蟮姆椒ㄖ?,多態(tài)性主要意味著泛化關(guān)系的各類中名稱相同的屬性和操作具有不同的意義。為了實(shí)現(xiàn)另一個(gè)目標(biāo)接口的復(fù)用,并節(jié)省大量編碼工作,多態(tài)性shape類具有顯示屏幕上形狀的display ()操作。 shape類有兩個(gè)子類: circle類和rectan

6、gle類,分別具有繪制圓和矩形的display ()操作。 如果向shape類對(duì)象發(fā)送消息display (),則無論該對(duì)象所屬的子類如何,都將消息display (); 可以正確執(zhí)行,但結(jié)果不同。 如果子類的操作f(x )與父類的方法f(x )具有相同的基調(diào),則子類將復(fù)蓋父類的f(x )。 基調(diào)(Signature )是指函數(shù)的函數(shù)名稱和函數(shù)的參數(shù)表,包括參數(shù)、參數(shù)名稱和參數(shù)類型。 如果復(fù)蓋和復(fù)蓋、復(fù)蓋和子類的成員函數(shù)f(x )具有與父類的成員函數(shù)f(x )相同的基調(diào),則子類可以復(fù)蓋父類的f(x ) 重負(fù)載允許存在多個(gè)同名的函數(shù),但是這些函數(shù)的參數(shù)表不同(參數(shù)數(shù)量不同、參數(shù)類型不同、還是兩者

7、不同),具有不同的氣氛。 霸蓋引起多態(tài)性,通過動(dòng)態(tài)鏈路實(shí)現(xiàn)。 重負(fù)載與多態(tài)性無關(guān),通過靜態(tài)鏈路實(shí)現(xiàn)。 基調(diào)(signature )和原型(prototype ),函數(shù)原型相似函數(shù)定義時(shí)的函數(shù)標(biāo)題。 為了在定義前可以調(diào)用函數(shù),c的規(guī)定可以在說明函數(shù)的原型后調(diào)用函數(shù)。 函數(shù)的定義可以放在程序的后面。 函數(shù)原型由函數(shù)的返回類型、函數(shù)名稱和參數(shù)表組成,必須與函數(shù)定義的返回類型、函數(shù)名稱和參數(shù)表匹配。 函數(shù)原型不需要包含參數(shù)的名稱,而只可以包含參數(shù)的類型. 例如,int area (int,int )與int area (int,int b )同等函數(shù)基調(diào)(signature、簽名、特征標(biāo)簽)函數(shù)簽名中

8、包含函數(shù)名稱、參數(shù)類型、函數(shù)所在的類和名稱空間、以及包含其它信息的函數(shù)的信息具體的函數(shù)簽名方法因編譯器而異,函數(shù)的返回類型. int f (); 浮點(diǎn)(); 不能在同一類中出現(xiàn)的函數(shù)調(diào)用與函數(shù)基調(diào)有關(guān),并且動(dòng)態(tài)鏈路是在執(zhí)行時(shí)知道消息的特定接收方和其響應(yīng)的方法。 編譯時(shí)連接特定的函數(shù)地址,運(yùn)行時(shí)鏈接相關(guān)的函數(shù)地址。 動(dòng)態(tài)鏈接是以動(dòng)態(tài)鏈接方式執(zhí)行程序的高效目標(biāo)語(yǔ)言的所有函數(shù)的c,可以選擇哪個(gè)函數(shù)是虛擬成員函數(shù)還是虛函數(shù)圖標(biāo)的指針陣列Instrument A,對(duì)象,Wind objects,vptr wind :30 play wind :30 what wind :30 adjust,percus

9、sion :30 play percussion :30 what percussion :30 adjust, string :30 play string :30 whatstring :30 adjust,brass :30 play brass :30 what brass :3360 adjust,percussion obje 和string objects,vptr,關(guān)聯(lián),現(xiàn)實(shí)世界一樣,面向?qū)ο蠓椒ǖ母鱾€(gè)對(duì)象不獨(dú)立存在,它們之間存在具有特定意義的各種關(guān)系。 這個(gè)關(guān)系稱為鏈關(guān)聯(lián)是對(duì)象之間的鏈的集合關(guān)聯(lián)和消息傳遞是兩個(gè)不同概念之一: 相關(guān)目的是提供服務(wù),信息傳遞必須只有兩個(gè)類之間有關(guān)

10、聯(lián),在互相傳遞信息的另一觀點(diǎn):的兩個(gè)對(duì)象之間有關(guān)聯(lián)鏈,不一定具有消息傳遞關(guān)系,并且具有關(guān)聯(lián)鏈面向?qū)ο蠓椒ǖ男蜗?,概括地說,面向?qū)ο蠓椒ǖ幕舅枷胧菑目陀^存在于現(xiàn)實(shí)世界的東西(即對(duì)象)構(gòu)建軟件系統(tǒng),在系統(tǒng)結(jié)構(gòu)中盡可能地利用人的自然想法。6、從面向?qū)ο蟮膬?yōu)勢(shì)、認(rèn)識(shí)論的角度出發(fā),面向?qū)ο蟮姆椒ǜ淖兞巳藗冋J(rèn)識(shí)世界的方式。 面向?qū)ο笳Z(yǔ)言縮小了從客觀世界到計(jì)算機(jī)的語(yǔ)言差距。 面向?qū)ο蟮姆椒ū3种鴱膯栴}域到計(jì)算機(jī)的差距,復(fù)用有助于提高軟件的質(zhì)量和生產(chǎn)效率。 7 .面向?qū)ο蠛??面向?qū)ο蟮姆椒?、面向服?wù)的方法、面向組件的方法、代理方法、模型驅(qū)動(dòng)方法、思考問題、類是具有相同屬性相同操作的對(duì)象的集合,類中的每個(gè)對(duì)象

11、都是此類之一。 a .實(shí)例b .用例c .實(shí)例d .異常面向?qū)ο蟮姆椒ㄖ校粋€(gè)對(duì)象通過發(fā)送()向另一個(gè)對(duì)象請(qǐng)求服務(wù)。 a .語(yǔ)句b .消息c .命令d .調(diào)用密碼的關(guān)系和消息之間的關(guān)系正確的是,() a .關(guān)聯(lián)的目的是提供服務(wù),消息必然在b .兩個(gè)類的實(shí)例之間沒有關(guān)聯(lián)鏈,但消息c.2 消息d .當(dāng)兩個(gè)對(duì)象之間有鏈時(shí),兩者一定有消息傳遞關(guān)系,在復(fù)蓋和復(fù)蓋方面正確的是() 如果子類的成員函數(shù)f(x )與父類的成員函數(shù)f(x )具有相同的函數(shù)名稱,則稱為子類的子類獨(dú)占父類的f(x )。 如果子類的成員函數(shù)f(x )與父類的成員函數(shù)f(x )具有相同的基調(diào),則稱為子類的子類過載父類的f(x )。 重負(fù)荷引起多態(tài)性,復(fù)蓋與多態(tài)性無關(guān)。 霸蓋通過動(dòng)態(tài)鏈路實(shí)現(xiàn),重負(fù)載通過靜態(tài)鏈路實(shí)現(xiàn)。 ()是面向?qū)ο蠓椒ǖ闹匾獧C(jī)制。 該機(jī)制無論特定對(duì)象如何都實(shí)現(xiàn)操作的定義和實(shí)現(xiàn)操作的特定方法與特定對(duì)象相關(guān)聯(lián)。 a泛化b模板c對(duì)象的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論