歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

面向?qū)ο蟪绦蛟O(shè)計(jì)語言C-第1章引論.ppt

  • 資源ID:6570820       資源大?。?span id="7uym0mv" class="font-tahoma">878.50KB        全文頁(yè)數(shù):34頁(yè)
  • 資源格式: PPT        下載積分:9.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

面向?qū)ο蟪绦蛟O(shè)計(jì)語言C-第1章引論.ppt

面向?qū)ο蟪绦蛟O(shè)計(jì)語言C 電子科技大學(xué)示范性軟件學(xué)院 1 第一章引論 1 1面向?qū)ο蟮哪繕?biāo)傳統(tǒng)的程序設(shè)計(jì)方法是模塊化 或結(jié)構(gòu)化 的 具體步驟為 整個(gè)軟件系統(tǒng)功能逐步細(xì)化為多個(gè)小的功能 功能劃分 多個(gè)小的功能對(duì)應(yīng)由一個(gè)模塊 如函數(shù) 過程 分程序 子程序等 來實(shí)現(xiàn) 多個(gè)模塊合作完成較大的功能 所有模塊的合作完成整個(gè)軟件系統(tǒng)的功能 2 第一章引論 1 1面向?qū)ο蟮哪繕?biāo)對(duì)于傳統(tǒng)的程序設(shè)計(jì) 在設(shè)計(jì)和實(shí)現(xiàn) 編程 階段考慮的是模塊 程序本身也是由模塊構(gòu)成的 下面我們由數(shù)據(jù)類型來引出面向?qū)ο蟮母拍?3 第一章引論 1 1面向?qū)ο蟮哪繕?biāo)數(shù)據(jù)類型分為三種 簡(jiǎn)單數(shù)據(jù)類型 內(nèi)建 built in 類型 語言本身提供的類型 用戶定義數(shù)據(jù)類型 以簡(jiǎn)單數(shù)據(jù)類型為基礎(chǔ) 它包含多個(gè)簡(jiǎn)單數(shù)據(jù)類型成分 這些數(shù)據(jù)成分是可以直接操作的 抽象數(shù)據(jù)類型 在定義數(shù)據(jù)的同時(shí) 必須定義對(duì)數(shù)據(jù)的操作 它的數(shù)據(jù)成分是不可見的 也不可以直接操作 4 第一章引論 1 1面向?qū)ο蟮哪繕?biāo)抽象數(shù)據(jù)類型是從更一般的信息隱蔽原則派生出來的 抽象數(shù)據(jù)類型隱藏了表示的細(xì)節(jié) 通過過程 或方法 來訪問抽象數(shù)據(jù)對(duì)象 對(duì)象的表示是被保護(hù)的 對(duì)于抽象類型的使用 必須通過類型的實(shí)際例子 實(shí)例 實(shí)體 相當(dāng)于變量或常量 的是用來體現(xiàn) 5 第一章引論 1 1面向?qū)ο蟮哪繕?biāo)面向?qū)ο笳Z言中所謂的對(duì)象 就是上面提到的實(shí)體 具體的說 是 將某組數(shù)據(jù)和使用該數(shù)據(jù)的一組基本操作封裝在一起而形成的一個(gè)實(shí)體 對(duì)象和抽象類型的關(guān)系 就像整型變量和整型的關(guān)系 6 第一章引論 1 1面向?qū)ο蟮哪繕?biāo)面向?qū)ο蟮幕舅枷刖褪前岩獦?gòu)造的系統(tǒng)表示為對(duì)象的集合 它的目的是想在某種程度上解決軟件面臨的兩大課題 怎樣克服軟件的復(fù)雜性怎樣將現(xiàn)實(shí)世界模型 包括它們之間的關(guān)系 在計(jì)算機(jī)中自然地表示出來 7 第一章引論 1 1面向?qū)ο蟮哪繕?biāo)從軟件的角度來看 計(jì)算是一種仿真 如果每一個(gè)被仿真的實(shí)體都由一個(gè)數(shù)據(jù)結(jié)構(gòu)來表示 并且將相關(guān)的操作信息封裝進(jìn)去 仿真將被簡(jiǎn)化 可以更方便地刻畫對(duì)象的內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律 面向?qū)ο缶褪沁@樣一種適用于直觀模型化的設(shè)計(jì)方法 這意味著設(shè)計(jì)模型與客觀對(duì)象之間有近乎一對(duì)一的對(duì)應(yīng)關(guān)系 這一思想非常利于實(shí)現(xiàn)大型的軟件系統(tǒng) 8 第一章引論 1 1面向?qū)ο蟮哪繕?biāo)作為克服軟件復(fù)雜性的手段 在面向?qū)ο蟮姆椒ㄖ?利用了如下對(duì)象的性質(zhì) 將密切相關(guān)的數(shù)據(jù)和過程封裝成為一個(gè)實(shí)體 定義了一個(gè)實(shí)體后 即使不知道此實(shí)體的功能是怎樣實(shí)現(xiàn)的也能使用它 9 第一章引論 1 1面向?qū)ο蟮哪繕?biāo)面向?qū)ο笤O(shè)計(jì)非常注重設(shè)計(jì)方法 實(shí)際上 用面向?qū)ο蠓椒ň幊痰年P(guān)鍵是模型化 程序員的責(zé)任是構(gòu)造現(xiàn)實(shí)的軟件模型 此時(shí) 計(jì)算機(jī)的觀點(diǎn)是不重要的 而現(xiàn)實(shí)的觀點(diǎn)才是關(guān)鍵 10 第一章引論 1 1面向?qū)ο蟮哪繕?biāo)面向?qū)ο蟮哪繕?biāo)可以歸納為 對(duì)試圖利用計(jì)算機(jī)進(jìn)行問題求解和信息處理的領(lǐng)域 盡量使用對(duì)象的概念 將問題空間中的現(xiàn)實(shí)模型映射到程序空間 由此所得到的自然性可望克服軟件系統(tǒng)的復(fù)雜性 從而得到問題求解和信息處理的更高性能 11 第一章引論 1 2面向?qū)ο笳Z言的核心概念1 2 1數(shù)據(jù)封裝DataEncapsulation面向過程語言的做法 12 第一章引論 1 2面向?qū)ο笳Z言的核心概念1 2 1數(shù)據(jù)封裝DataEncapsulation面向過程語言的做法 實(shí)例 13 第一章引論 1 2面向?qū)ο笳Z言的核心概念1 2 1數(shù)據(jù)封裝DataEncapsulation面向?qū)ο笳Z言的做法 14 第一章引論 1 2面向?qū)ο笳Z言的核心概念1 2 1數(shù)據(jù)封裝DataEncapsulation面向?qū)ο笳Z言的做法 實(shí)例 15 第一章引論 1 2面向?qū)ο笳Z言的核心概念1 2 1數(shù)據(jù)封裝DataEncapsulation面向?qū)ο笳Z言采用了抽象的方法 而抽象的原則之一就是信息隱藏 數(shù)據(jù)封裝將一組數(shù)據(jù)和這組數(shù)據(jù)相關(guān)的操作集合封裝在一起 形成了一個(gè)能動(dòng)的實(shí)體 成為對(duì)象 用戶不必知道對(duì)象行為的實(shí)現(xiàn)細(xì)節(jié) 只需根據(jù)對(duì)象提供的外部特性接口訪問對(duì)象 在C 中 實(shí)現(xiàn)數(shù)據(jù)封裝的機(jī)制是 類 class 在Java和C 中 實(shí)現(xiàn)數(shù)據(jù)封裝的機(jī)制也是 類 class 16 第一章引論 1 2面向?qū)ο笳Z言的核心概念1 2 2繼承Inheritance繼承是面向?qū)ο笳Z言的另一個(gè)重要的概念 在客觀世界中 存在著整體和部分的關(guān)系 ispartof 一般和特殊的關(guān)系 iskindof 而這兩種關(guān)系也是初學(xué)者容易弄混淆的關(guān)系 17 第一章引論 1 2面向?qū)ο笳Z言的核心概念1 2 2繼承Inheritance讓我們來看看現(xiàn)實(shí)世界中的例子 Insect 18 第一章引論 1 2面向?qū)ο笳Z言的核心概念1 2 2繼承Inheritance在一個(gè)的繼承樹中 每下一層都比上一層更加具體地定義了每種類的特性 反過來 一旦某層的某個(gè)特征被確定了下來 那么其下所有的種類都應(yīng)該包含該特性 這就是 繼承 的一般性概念 19 第一章引論 1 2面向?qū)ο笳Z言的核心概念1 2 2繼承Inheritance在面向?qū)ο蟮恼Z言中 類功能支持繼承機(jī)制 除了根類 每個(gè)類都可以有父類 super parentclass baseclass 也可以有它的子類 subclass childclass derivedclass 一個(gè)子類從它的父類那里繼承了所有的數(shù)據(jù)和操作 并擴(kuò)充自己的特殊數(shù)據(jù)和操作 父類抽象出共同特征 子類表達(dá)差別 20 第一章引論 1 2面向?qū)ο笳Z言的核心概念1 2 2繼承Inheritance再看一個(gè)實(shí)際的例子 21 第一章引論 1 2面向?qū)ο笳Z言的核心概念1 2 2繼承Inheritance要注意區(qū)分的兩個(gè)概念是 ispartof和iskindof 只有后者才是繼承的概念 KindofMercedesisakindofcar PartofWheelsarepartofaMercedes Wheelisnotakindofcar 22 第一章引論 1 2面向?qū)ο笳Z言的核心概念1 2 3多態(tài)性Poly morphism所謂多態(tài) 是指一個(gè)名字 或符號(hào) 具有多種含義 用戶在使用函數(shù)編程時(shí) 關(guān)心的是該函數(shù)的功能及其使用接口 并不需要了解該函數(shù)的使用接口與函數(shù)的哪一種實(shí)現(xiàn)方法相匹配 binding 也就是說 在設(shè)計(jì)這一級(jí)上 我們只關(guān)心 施加在對(duì)象上的動(dòng)作是什么 而不必牽涉 如何實(shí)現(xiàn)這個(gè)動(dòng)作 以及 實(shí)現(xiàn)這個(gè)動(dòng)作有多少種方法 的細(xì)節(jié) 23 第一章引論 1 2面向?qū)ο笳Z言的核心概念1 2 3多態(tài)性Poly morphism函數(shù)重載在面向?qū)ο蟮恼Z言中 函數(shù)重載 overload 表達(dá)了最簡(jiǎn)單的多態(tài)性 下面是函數(shù)重載的例子 voidfun int int char voidfun char float voidfun int int voidfun float float 24 第一章引論 1 2面向?qū)ο笳Z言的核心概念1 2 3多態(tài)性Poly morphism運(yùn)算符重載運(yùn)算符重載指的是相同的運(yùn)算符在不同的上下文有不同的解釋 例如 兩個(gè)整數(shù)使用 運(yùn)算符表示它們要做加法 而兩個(gè)字符串使用 運(yùn)算符則表示串連接 C 為運(yùn)算符重載提供了完整的語法支持 25 第一章引論 1 2面向?qū)ο笳Z言的核心概念1 2 3多態(tài)性Poly morphism如果函數(shù)調(diào)用 接口 與哪個(gè)函數(shù)實(shí)現(xiàn)相匹配是在編譯時(shí)完成的 稱為早期匹配 earlybinding 或靜態(tài)聯(lián)編 如果匹配是在運(yùn)行時(shí)確定的 則稱為后期匹配 latelybinding 或動(dòng)態(tài)聯(lián)編 C 提供的虛函數(shù) VirtualFunction 提供了后期匹配帶來的良好特性 26 第一章引論 1 3按對(duì)象方式思維面向?qū)ο笫且环N仿真技術(shù) 面向?qū)ο笤O(shè)計(jì)產(chǎn)生一種與現(xiàn)實(shí)具有自然關(guān)系的軟件系統(tǒng) 面向過程的程序設(shè)計(jì)方法鼓勵(lì)全局地看問題 強(qiáng)調(diào)系統(tǒng)功能的逐步細(xì)化 而在面向?qū)ο蟪绦蛟O(shè)計(jì)中 每個(gè)對(duì)象嚴(yán)格地是局部的 每個(gè)對(duì)象管理自己的實(shí)現(xiàn) 學(xué)習(xí)面向?qū)ο笤O(shè)計(jì) 我們需要將思維方式從全局轉(zhuǎn)到局部 在局部中發(fā)現(xiàn)對(duì)象 27 第一章引論 1 3按對(duì)象方式思維設(shè)計(jì)對(duì)象需要做許多小決策 怎樣將計(jì)算部分合理地分配給不同的對(duì)象 這叫做分散責(zé)任 distributionresponsibility 這是設(shè)計(jì)決策的基礎(chǔ) 其余都是次要的 CRC方法幫助設(shè)計(jì)者分散責(zé)任 直到設(shè)計(jì)的最后階段才考慮問題的總體 28 第一章引論 1 3按對(duì)象方式思維面向?qū)ο蟮腃RC方法從以下三個(gè)方面來表述對(duì)象 ClassName 給對(duì)象命名 實(shí)際上就是對(duì)需要處理的問題空間中包含的不同性質(zhì)的數(shù)據(jù)進(jìn)行分類 一個(gè)好的具有一致性的名字會(huì)為以后設(shè)計(jì)的正確性奠定基礎(chǔ) 29 第一章引論 1 3按對(duì)象方式思維面向?qū)ο蟮腃RC方法從以下三個(gè)方面來表述對(duì)象 Responsibilities 每個(gè)對(duì)象完成設(shè)計(jì)中的一個(gè)小目標(biāo)的功能 它實(shí)現(xiàn)了這個(gè)系統(tǒng)狀態(tài)的某一部分 責(zé)任要簡(jiǎn)明扼要 不要太多 同時(shí)不要讓對(duì)象負(fù)責(zé)自己不需要承擔(dān)的責(zé)任 30 第一章引論 1 3按對(duì)象方式思維面向?qū)ο蟮腃RC方法從以下三個(gè)方面來表述對(duì)象 Collaborators 每個(gè)對(duì)象都可能依賴于其它對(duì)象來完成任務(wù) 合作者應(yīng)該不要多 并且應(yīng)該實(shí)用 盡量避免設(shè)計(jì)同所有對(duì)象打交道的也就是全局的對(duì)象 31 第一章引論 1 4面向?qū)ο蟮乃枷牒头椒? 4 1面向?qū)ο笫且环N認(rèn)知方法學(xué)1 4 2面向?qū)ο笈c軟件IC1 4 3面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化程序設(shè)計(jì)方法1 4 4對(duì)象是抽象數(shù)據(jù)類型的實(shí)現(xiàn) 32 第一章引論 1 5類屬類屬并不是面向?qū)ο笳Z言特有的成分 它指的是類型參數(shù)化 即參數(shù)化一個(gè)軟件分量的能力 C語言沒有類屬的能力 但可以通過C的宏定義來模擬類屬 C 采用模板來實(shí)現(xiàn)類屬 在現(xiàn)代的編程思想中 用 泛型 的概念來代替類屬 同時(shí)具有更廣泛的含義 33 第一章引論 1 6面向?qū)ο蟮某绦蛟O(shè)計(jì)語言Simula67 Simula 20世紀(jì)60年代Smalltalk 20世紀(jì)80年代C 20世紀(jì)80年代早期Java 20世紀(jì)90年代C 21世紀(jì)初 34

注意事項(xiàng)

本文(面向?qū)ο蟪绦蛟O(shè)計(jì)語言C-第1章引論.ppt)為本站會(huì)員(xian****812)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!