版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、22:15:521C+程序設計教程(第二版)第十一章 基于對象編程 Chapter 11 Object-Based Programming22:15:522第十一章內(nèi)容1.抽象編程抽象編程 ( Abstract Programming )2.編程質(zhì)量編程質(zhì)量 ( Programming Quality ) 3.分析分析Joses問題問題 ( Analysis the Joses Problem )4.基于過程的實現(xiàn)基于過程的實現(xiàn) ( Procedure-Based Solving )5.基于對象的實現(xiàn)基于對象的實現(xiàn) ( Object-Based Solving )6.程序維護程序維護 ( Pr
2、ogram Maintenance )7.程序擴展程序擴展 ( Program Extension )22:15:5331. 抽象編程抽象編程 ( Abstract Programming )抽象分行為抽象和數(shù)據(jù)抽象兩種行為抽象:通俗地說便是將一個行為序列歸并(抽象)為一個行為的過程.例如:將取碗筷、盛飯、盛菜,扒一口飯、夾一筷菜、再扒一口飯、再夾一筷菜的若干重復,然后放下碗筷的過程歸并為吃飯.數(shù)據(jù)抽象:通俗地說,就是將事物歸類,或者說,將事物看成是一定型號、規(guī)格的數(shù)據(jù),然后將性質(zhì)接近的數(shù)據(jù)歸納(抽象)為一類.例如:將圓、三角形、長方形歸為形狀類.22:15:534數(shù)據(jù)結構數(shù)據(jù)結構 一系列性質(zhì)
3、相同的數(shù)據(jù)一系列性質(zhì)相同的數(shù)據(jù), 組織成一定的邏輯結組織成一定的邏輯結構構, 并帶有自身的一系列操作并帶有自身的一系列操作例如:整型向量例如:整型向量 不同整型值是一系列性質(zhì)相同的數(shù)據(jù);其數(shù)不同整型值是一系列性質(zhì)相同的數(shù)據(jù);其數(shù)據(jù)集合存放在向量中,便是組織成線性存儲據(jù)集合存放在向量中,便是組織成線性存儲結構;向量自身有創(chuàng)建、復制、擴建、增刪、結構;向量自身有創(chuàng)建、復制、擴建、增刪、修改等操作,外加排序、查找等算法可以調(diào)修改等操作,外加排序、查找等算法可以調(diào)用用.所以,整型向量在語言中是一種具體的所以,整型向量在語言中是一種具體的數(shù)據(jù)結構。數(shù)據(jù)結構。22:15:535抽象編程抽象編程 通過抽象的
4、方法來減少編程工作量或有效地減輕通過抽象的方法來減少編程工作量或有效地減輕編程難度稱為編程難度稱為抽象編程抽象編程將問題通過功能分解,各個擊破的編程方法將問題通過功能分解,各個擊破的編程方法(過過程化編程程化編程)是一種是一種以行為抽象為主的抽象編程以行為抽象為主的抽象編程將問題通過實體分析,分層分類地實現(xiàn)抽象數(shù)據(jù)將問題通過實體分析,分層分類地實現(xiàn)抽象數(shù)據(jù)類型,從而進行簡單應用編程類型,從而進行簡單應用編程(基于對象編程基于對象編程)是一種是一種以數(shù)據(jù)抽象為主的抽象編程以數(shù)據(jù)抽象為主的抽象編程,這種抽象,這種抽象編程,通過數(shù)據(jù)類型復用,方便編程,方便維編程,通過數(shù)據(jù)類型復用,方便編程,方便維護
5、和擴展,其效果比過程化編程更好護和擴展,其效果比過程化編程更好22:15:536編程編程 語言中沒有許多具體的數(shù)據(jù)類型,要解決實際問語言中沒有許多具體的數(shù)據(jù)類型,要解決實際問題,很大部分工作是要建立數(shù)據(jù)模式與實際問題,很大部分工作是要建立數(shù)據(jù)模式與實際問題的對應,也就是建立抽象數(shù)據(jù)類型的過程題的對應,也就是建立抽象數(shù)據(jù)類型的過程對象化編程就是基于分層分類的抽象數(shù)據(jù)類型之對象化編程就是基于分層分類的抽象數(shù)據(jù)類型之具體編程,它能更好地實現(xiàn)數(shù)據(jù)結構和算法,具體編程,它能更好地實現(xiàn)數(shù)據(jù)結構和算法,便是將便是將N.Wirth的程序公式:的程序公式: 程序程序=算法算法+數(shù)據(jù)結構數(shù)據(jù)結構具體化為:具體化為
6、: 程序程序=算法算法+抽象數(shù)據(jù)類型抽象數(shù)據(jù)類型22:15:5372. 編程質(zhì)量編程質(zhì)量 ( Programming Quality ) 可讀性:通過使用更好的編程方法可以從本質(zhì)上改進可讀性通過使用定義良好的算法和語句控制結構,可以局部改進算法的可理解性通過學習和使用優(yōu)秀程序員的編碼習慣,采用一貫的編碼風格,可以增強可讀性注意:高級程序員與初學者對可讀性的把握分寸是不同的 22:15:538易編程性:只是對采用好的編程方法或更高級語言而言,抽象程度越大,越易編程對象化編程在抽象數(shù)據(jù)類型的創(chuàng)建上做了大量的工作,因而贏得了應用程序編寫的方便與快捷22:15:539安全性:編程在算法設計上是挖空心思
7、的勞動過程,而在運用語言對之描述上應該瀟灑自在:容易表達,不容易出錯,運行上更安全。好的編程方法能夠幫助程序員實現(xiàn)瀟灑編程抽象數(shù)據(jù)類型中可以將大量安全代碼嵌入其中,從而使應用編程瀟灑自在實現(xiàn)抽象數(shù)據(jù)類型的過程本身也是使用其他抽象數(shù)據(jù)類型的應用編程,同樣也充滿著瀟灑與自在22:15:5310可維護性:指局部修改不影響系統(tǒng)全局的總體性能,而系統(tǒng)產(chǎn)生的問題通常可以通過局部維護(修改或更換部件)來解決。模塊化編程使程序可拆裝,可局部修改,而不影響整體性能與工作,因而可維護性強,過程化編程是將過程模塊化,具有一定的可維護性;對象化編程是將數(shù)據(jù)類型也模塊化,從而導致更方便的維護性能22:15:5311可擴
8、充性:指系統(tǒng)擴展時,只增加擴展代碼,而對原系統(tǒng)的正常運作只作很少的修改甚至不修改功能擴展的影響:過程化編程,會涉及多處擴展代碼與原系統(tǒng)不和諧所帶來的修改對象化編程,如果是抽象數(shù)據(jù)類型的功能擴展,則不會影響原系統(tǒng)的正常運行,而只是支持應用程序中增加的一些擴展代碼而已;如果是應用程序功能擴展,那是使用抽象數(shù)據(jù)類型的抽象代碼擴展,其修改量比之低級代碼要少22:15:5312效率:前提:代碼量大不等于運行量大效率除了看速度,還要看損耗,既要考慮編程方便,又要考慮運行性能(時空效率)1過程化程序代碼量少,但對象化程序的代碼量相對較多,但不占系統(tǒng)空間2過程化程序編寫安全代碼代價大,因而不系統(tǒng),對象化程序可
9、以方便地在抽象數(shù)據(jù)類型中嵌入安全代碼,從而導致了代碼量大的問題,如果讓過程化程序達到其安全指標,為此增加的代碼量比對象化程序更多22:15:53133. 分析分析Joses問題問題 ( Analysis the Joses Problem )過程化分析:按實現(xiàn)過程分析,功能劃分,從而得到幾個算法步驟:獲得小孩數(shù)n,開始位置s,間隔數(shù)m創(chuàng)建環(huán)鏈表循環(huán)數(shù)數(shù),排除n-1個小孩輸出剩下的小孩編號(勝利者)善后工作(清除環(huán)鏈表)22:15:5314對每個算法步驟,分而治之:例如,環(huán)鏈表操作的復雜性,在循環(huán)數(shù)數(shù)中體現(xiàn)初始化和善后處理都必須由程序員一人承擔,工作量大,容易產(chǎn)生錯誤22:15:5315對象化分
10、析:先考慮一些能對應抽象數(shù)據(jù)類型的實體,如,以小孩為元素的鏈表類,問題本身也是一個類,然后脫離問題,先來定制類或者重用類,最后基于類型來實現(xiàn)算法(簡單得多)鏈表類:它有創(chuàng)建,增加,減少,修改,搜索等操作問題(Josephus)類:它有創(chuàng)建,獲得勝利者操作22:15:53166. 程序維護程序維護 ( Program Maintenance )維護要求:數(shù)個數(shù)m,m若改為根據(jù)當前小孩的序號與m的和來確定個數(shù)m,則在進行數(shù)個數(shù)前,先要進行表達式計算,這一切,都是在Josephus類中暗中完成的,所以只要修改Josephus類的 getWinner 無須修改應用程序,便可維護好系統(tǒng)22:15:53177.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度玻璃深加工技術研發(fā)與轉化合同3篇
- 2024西安商務活動車輛租賃協(xié)議版B版
- 2024期房房屋買賣合同樣書
- 二零二四年前期物業(yè)服務委托合同范本:含社區(qū)環(huán)境美化條款3篇
- 2024景區(qū)廣告位租賃合同
- 2025年度旅游目的地VI視覺導視系統(tǒng)設計合同3篇
- 二零二四墓地用地使用權轉讓與陵園墓地運營管理合同范本3篇
- 2024版教育實習全面規(guī)定協(xié)議范本
- 2024款新能源汽車租賃市場推廣合同
- 2024版學校食堂廚師聘用合同:廚師工作內(nèi)容與要求
- 不同茶葉的沖泡方法
- 光伏發(fā)電并網(wǎng)申辦具體流程
- 基本藥物制度政策培訓課件
- 2025年中國華能集團限公司校園招聘高頻重點提升(共500題)附帶答案詳解
- 建筑勞務專業(yè)分包合同范本(2025年)
- GB/T 45002-2024水泥膠砂保水率測定方法
- 廣東省廣州海珠區(qū)2023-2024學年八年級上學期期末數(shù)學試卷(含答案)
- 飛行原理(第二版) 課件 第10章 高速空氣動力學基礎
- 廣西《乳腺X射線數(shù)字化體層攝影診療技術操作規(guī)范》
- 山西省2024年中考道德與法治真題試卷(含答案)
- 五年(2020-2024)高考地理真題分類匯編(全國版)專題12區(qū)域發(fā)展解析版
評論
0/150
提交評論