面向對象程序設計語言C-第1章引論.ppt
《面向對象程序設計語言C-第1章引論.ppt》由會員分享,可在線閱讀,更多相關《面向對象程序設計語言C-第1章引論.ppt(34頁珍藏版)》請在裝配圖網上搜索。
面向對象程序設計語言C 電子科技大學示范性軟件學院 1 第一章引論 1 1面向對象的目標傳統(tǒng)的程序設計方法是模塊化 或結構化 的 具體步驟為 整個軟件系統(tǒng)功能逐步細化為多個小的功能 功能劃分 多個小的功能對應由一個模塊 如函數 過程 分程序 子程序等 來實現 多個模塊合作完成較大的功能 所有模塊的合作完成整個軟件系統(tǒng)的功能 2 第一章引論 1 1面向對象的目標對于傳統(tǒng)的程序設計 在設計和實現 編程 階段考慮的是模塊 程序本身也是由模塊構成的 下面我們由數據類型來引出面向對象的概念 3 第一章引論 1 1面向對象的目標數據類型分為三種 簡單數據類型 內建 built in 類型 語言本身提供的類型 用戶定義數據類型 以簡單數據類型為基礎 它包含多個簡單數據類型成分 這些數據成分是可以直接操作的 抽象數據類型 在定義數據的同時 必須定義對數據的操作 它的數據成分是不可見的 也不可以直接操作 4 第一章引論 1 1面向對象的目標抽象數據類型是從更一般的信息隱蔽原則派生出來的 抽象數據類型隱藏了表示的細節(jié) 通過過程 或方法 來訪問抽象數據對象 對象的表示是被保護的 對于抽象類型的使用 必須通過類型的實際例子 實例 實體 相當于變量或常量 的是用來體現 5 第一章引論 1 1面向對象的目標面向對象語言中所謂的對象 就是上面提到的實體 具體的說 是 將某組數據和使用該數據的一組基本操作封裝在一起而形成的一個實體 對象和抽象類型的關系 就像整型變量和整型的關系 6 第一章引論 1 1面向對象的目標面向對象的基本思想就是把要構造的系統(tǒng)表示為對象的集合 它的目的是想在某種程度上解決軟件面臨的兩大課題 怎樣克服軟件的復雜性怎樣將現實世界模型 包括它們之間的關系 在計算機中自然地表示出來 7 第一章引論 1 1面向對象的目標從軟件的角度來看 計算是一種仿真 如果每一個被仿真的實體都由一個數據結構來表示 并且將相關的操作信息封裝進去 仿真將被簡化 可以更方便地刻畫對象的內部狀態(tài)和運動規(guī)律 面向對象就是這樣一種適用于直觀模型化的設計方法 這意味著設計模型與客觀對象之間有近乎一對一的對應關系 這一思想非常利于實現大型的軟件系統(tǒng) 8 第一章引論 1 1面向對象的目標作為克服軟件復雜性的手段 在面向對象的方法中 利用了如下對象的性質 將密切相關的數據和過程封裝成為一個實體 定義了一個實體后 即使不知道此實體的功能是怎樣實現的也能使用它 9 第一章引論 1 1面向對象的目標面向對象設計非常注重設計方法 實際上 用面向對象方法編程的關鍵是模型化 程序員的責任是構造現實的軟件模型 此時 計算機的觀點是不重要的 而現實的觀點才是關鍵 10 第一章引論 1 1面向對象的目標面向對象的目標可以歸納為 對試圖利用計算機進行問題求解和信息處理的領域 盡量使用對象的概念 將問題空間中的現實模型映射到程序空間 由此所得到的自然性可望克服軟件系統(tǒng)的復雜性 從而得到問題求解和信息處理的更高性能 11 第一章引論 1 2面向對象語言的核心概念1 2 1數據封裝DataEncapsulation面向過程語言的做法 12 第一章引論 1 2面向對象語言的核心概念1 2 1數據封裝DataEncapsulation面向過程語言的做法 實例 13 第一章引論 1 2面向對象語言的核心概念1 2 1數據封裝DataEncapsulation面向對象語言的做法 14 第一章引論 1 2面向對象語言的核心概念1 2 1數據封裝DataEncapsulation面向對象語言的做法 實例 15 第一章引論 1 2面向對象語言的核心概念1 2 1數據封裝DataEncapsulation面向對象語言采用了抽象的方法 而抽象的原則之一就是信息隱藏 數據封裝將一組數據和這組數據相關的操作集合封裝在一起 形成了一個能動的實體 成為對象 用戶不必知道對象行為的實現細節(jié) 只需根據對象提供的外部特性接口訪問對象 在C 中 實現數據封裝的機制是 類 class 在Java和C 中 實現數據封裝的機制也是 類 class 16 第一章引論 1 2面向對象語言的核心概念1 2 2繼承Inheritance繼承是面向對象語言的另一個重要的概念 在客觀世界中 存在著整體和部分的關系 ispartof 一般和特殊的關系 iskindof 而這兩種關系也是初學者容易弄混淆的關系 17 第一章引論 1 2面向對象語言的核心概念1 2 2繼承Inheritance讓我們來看看現實世界中的例子 Insect 18 第一章引論 1 2面向對象語言的核心概念1 2 2繼承Inheritance在一個的繼承樹中 每下一層都比上一層更加具體地定義了每種類的特性 反過來 一旦某層的某個特征被確定了下來 那么其下所有的種類都應該包含該特性 這就是 繼承 的一般性概念 19 第一章引論 1 2面向對象語言的核心概念1 2 2繼承Inheritance在面向對象的語言中 類功能支持繼承機制 除了根類 每個類都可以有父類 super parentclass baseclass 也可以有它的子類 subclass childclass derivedclass 一個子類從它的父類那里繼承了所有的數據和操作 并擴充自己的特殊數據和操作 父類抽象出共同特征 子類表達差別 20 第一章引論 1 2面向對象語言的核心概念1 2 2繼承Inheritance再看一個實際的例子 21 第一章引論 1 2面向對象語言的核心概念1 2 2繼承Inheritance要注意區(qū)分的兩個概念是 ispartof和iskindof 只有后者才是繼承的概念 KindofMercedesisakindofcar PartofWheelsarepartofaMercedes Wheelisnotakindofcar 22 第一章引論 1 2面向對象語言的核心概念1 2 3多態(tài)性Poly morphism所謂多態(tài) 是指一個名字 或符號 具有多種含義 用戶在使用函數編程時 關心的是該函數的功能及其使用接口 并不需要了解該函數的使用接口與函數的哪一種實現方法相匹配 binding 也就是說 在設計這一級上 我們只關心 施加在對象上的動作是什么 而不必牽涉 如何實現這個動作 以及 實現這個動作有多少種方法 的細節(jié) 23 第一章引論 1 2面向對象語言的核心概念1 2 3多態(tài)性Poly morphism函數重載在面向對象的語言中 函數重載 overload 表達了最簡單的多態(tài)性 下面是函數重載的例子 voidfun int int char voidfun char float voidfun int int voidfun float float 24 第一章引論 1 2面向對象語言的核心概念1 2 3多態(tài)性Poly morphism運算符重載運算符重載指的是相同的運算符在不同的上下文有不同的解釋 例如 兩個整數使用 運算符表示它們要做加法 而兩個字符串使用 運算符則表示串連接 C 為運算符重載提供了完整的語法支持 25 第一章引論 1 2面向對象語言的核心概念1 2 3多態(tài)性Poly morphism如果函數調用 接口 與哪個函數實現相匹配是在編譯時完成的 稱為早期匹配 earlybinding 或靜態(tài)聯(lián)編 如果匹配是在運行時確定的 則稱為后期匹配 latelybinding 或動態(tài)聯(lián)編 C 提供的虛函數 VirtualFunction 提供了后期匹配帶來的良好特性 26 第一章引論 1 3按對象方式思維面向對象是一種仿真技術 面向對象設計產生一種與現實具有自然關系的軟件系統(tǒng) 面向過程的程序設計方法鼓勵全局地看問題 強調系統(tǒng)功能的逐步細化 而在面向對象程序設計中 每個對象嚴格地是局部的 每個對象管理自己的實現 學習面向對象設計 我們需要將思維方式從全局轉到局部 在局部中發(fā)現對象 27 第一章引論 1 3按對象方式思維設計對象需要做許多小決策 怎樣將計算部分合理地分配給不同的對象 這叫做分散責任 distributionresponsibility 這是設計決策的基礎 其余都是次要的 CRC方法幫助設計者分散責任 直到設計的最后階段才考慮問題的總體 28 第一章引論 1 3按對象方式思維面向對象的CRC方法從以下三個方面來表述對象 ClassName 給對象命名 實際上就是對需要處理的問題空間中包含的不同性質的數據進行分類 一個好的具有一致性的名字會為以后設計的正確性奠定基礎 29 第一章引論 1 3按對象方式思維面向對象的CRC方法從以下三個方面來表述對象 Responsibilities 每個對象完成設計中的一個小目標的功能 它實現了這個系統(tǒng)狀態(tài)的某一部分 責任要簡明扼要 不要太多 同時不要讓對象負責自己不需要承擔的責任 30 第一章引論 1 3按對象方式思維面向對象的CRC方法從以下三個方面來表述對象 Collaborators 每個對象都可能依賴于其它對象來完成任務 合作者應該不要多 并且應該實用 盡量避免設計同所有對象打交道的也就是全局的對象 31 第一章引論 1 4面向對象的思想和方法1 4 1面向對象是一種認知方法學1 4 2面向對象與軟件IC1 4 3面向對象方法與結構化程序設計方法1 4 4對象是抽象數據類型的實現 32 第一章引論 1 5類屬類屬并不是面向對象語言特有的成分 它指的是類型參數化 即參數化一個軟件分量的能力 C語言沒有類屬的能力 但可以通過C的宏定義來模擬類屬 C 采用模板來實現類屬 在現代的編程思想中 用 泛型 的概念來代替類屬 同時具有更廣泛的含義 33 第一章引論 1 6面向對象的程序設計語言Simula67 Simula 20世紀60年代Smalltalk 20世紀80年代C 20世紀80年代早期Java 20世紀90年代C 21世紀初 34- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 面向 對象 程序設計語言 引論
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://www.820124.com/p-6570820.html