資源描述:
《chap1 緒論new》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、面向?qū)ο蟪绦蛟O(shè)計(jì)(C++/Java)Object-OrientedProgramminginC++/JavaLanguage教材:l馬光志.C++程序設(shè)計(jì)實(shí)踐教程.華中科技大學(xué)出版lJava語(yǔ)言導(dǎo)學(xué)機(jī)械工業(yè)出版社參考書:1)王燕.面向?qū)ο蟮睦碚撆cC++實(shí)踐.清華版2)C++Thinking.機(jī)械工業(yè)出版社3)Java語(yǔ)言程序設(shè)計(jì)教程(21世紀(jì)高等學(xué)校計(jì)算機(jī)應(yīng)用技術(shù)規(guī)劃教材)清華出版社(下載電子文檔)教學(xué)目標(biāo):l熟練掌握C++/Java的重要語(yǔ)法,并能夠運(yùn)用C++/Java進(jìn)行簡(jiǎn)單的編程成績(jī)?cè)u(píng)定:l閉卷考試(80%)l平時(shí)
2、20%,包括課堂出勤率、課堂問答情況、作業(yè)、上機(jī)C++主講內(nèi)容:1.C++思想、程序設(shè)計(jì)方法、主要特點(diǎn)(緒論部分)2.C++的主要語(yǔ)法:變量、常量、指針、引用、重載函數(shù)、內(nèi)聯(lián)函數(shù)(CàC++的快速過渡)3.對(duì)象和類的概念、用法和定義;對(duì)象初始化;構(gòu)造函數(shù)、析構(gòu)函數(shù)的特點(diǎn)和用法4.對(duì)象成員、作用域和成員指針、靜態(tài)成員和友元5.單繼承、多繼承、虛函數(shù)、多態(tài)性6.運(yùn)算符重載7.模板,包括函數(shù)模板和類模板8.異常處理9.C++流及類庫(kù)(根據(jù)情況確定)Chap1緒論一、面向?qū)ο笏枷氲挠蓙?lái)1.產(chǎn)生原因:l人們希望能更直接與計(jì)算機(jī)進(jìn)行
3、交互à尋求一種更能反映人類解決問題的自然辦法l軟件系統(tǒng)越來(lái)越龐大、復(fù)雜,傳統(tǒng)的結(jié)構(gòu)化方法無(wú)法滿足易維護(hù)、易擴(kuò)充、可重用性好等要求à模擬客觀世界的構(gòu)成法則來(lái)構(gòu)造軟件系統(tǒng)(將系統(tǒng)分解成一系列的使能實(shí)體)2.實(shí)質(zhì):從現(xiàn)實(shí)世界中客觀存在的事物(即對(duì)象)出發(fā)來(lái)構(gòu)造軟件系統(tǒng),追求軟件系統(tǒng)對(duì)現(xiàn)實(shí)世界的直接模擬,盡量將現(xiàn)實(shí)世界中的事物直接映射到軟件系統(tǒng)的解空間。物質(zhì):一輛白色的自行車意識(shí):自行車具體事物:一輛白色的自行車抽象概念:自行車類圖1.1現(xiàn)實(shí)世界與面向?qū)ο笙到y(tǒng)之間的對(duì)應(yīng)關(guān)系現(xiàn)實(shí)問題空間面向?qū)ο蠼饪臻g物質(zhì)à對(duì)象意識(shí)à抽象概念(類)
4、二、面向?qū)ο蠓椒?gòu)造軟件系統(tǒng)的步驟1.系統(tǒng)分析——建立對(duì)象模型l發(fā)現(xiàn)對(duì)象;定義對(duì)象屬性和服務(wù);分析對(duì)象之間的聯(lián)系;建立系統(tǒng)的對(duì)象模型、動(dòng)態(tài)模型和功能模型2.系統(tǒng)設(shè)計(jì)——確立對(duì)象模型的實(shí)現(xiàn)方法l系統(tǒng)分解;設(shè)計(jì)問題域子系統(tǒng),確定應(yīng)用系統(tǒng)的邊界;設(shè)計(jì)人-機(jī)交互子系統(tǒng);設(shè)計(jì)任務(wù)管理子系統(tǒng)(分析系統(tǒng)的并發(fā)性、分配處理器的任務(wù));設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng)(選擇數(shù)據(jù)存儲(chǔ)管理模式);處理全局資源的訪問;等等3.對(duì)象設(shè)計(jì)——三種模型轉(zhuǎn)換成類l對(duì)象模型à類的屬性:主要考慮對(duì)象關(guān)聯(lián)的實(shí)現(xiàn)方法l動(dòng)態(tài)模型à類的方法:選用事件驅(qū)動(dòng)的運(yùn)行環(huán)境l功能模型à主
5、控模塊或子控模塊:順序執(zhí)行or事件驅(qū)動(dòng)方式實(shí)現(xiàn)流程控制4.對(duì)象實(shí)現(xiàn)——編碼l選用合適的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言(OOPL)和開發(fā)環(huán)境(DE),定義類的屬性及其方法,編寫主控模塊及子控模塊三、面向?qū)ο蟮某绦蛟O(shè)計(jì)1.結(jié)構(gòu)化的程序設(shè)計(jì)(StructureProgramming)l特點(diǎn):采用模塊分解與功能抽象,自頂向下、分而治之的手段,從而將一個(gè)較復(fù)雜的程序系統(tǒng)的設(shè)計(jì)任務(wù)分成許多易于控制和處理的子任務(wù),這些子任務(wù)都是可獨(dú)立編程的子程序模塊。l存在的問題:面向數(shù)據(jù)/過程的設(shè)計(jì)方法,數(shù)據(jù)和過程分離,導(dǎo)致1)程序的可重用性差(不同的數(shù)據(jù)格
6、式即使做相同的處理或?qū)ο嗤臄?shù)據(jù)格式要做不同的處理都需要編寫不同的程序)2)數(shù)據(jù)與程序有時(shí)不相容(存在錯(cuò)誤的數(shù)據(jù)調(diào)用正確的程序模塊或正確的數(shù)據(jù)調(diào)用錯(cuò)誤的程序模塊的可能性)2.面向?qū)ο蟮某绦蛟O(shè)計(jì)(Object-OrientedProgramming-OOP)l特點(diǎn):1)將數(shù)據(jù)及對(duì)數(shù)據(jù)的操作放在一起,作為一個(gè)相互依存、不可分割的整體來(lái)處理,采用數(shù)據(jù)抽象和信息隱藏技術(shù)。(封裝性)2)將對(duì)象及對(duì)對(duì)象的操作抽象成一種新的數(shù)據(jù)類型——類,并且考慮不同對(duì)象之間的聯(lián)系和對(duì)象類的重用性。(類、對(duì)象、消息、繼承)OOP吸收了結(jié)構(gòu)化程序設(shè)計(jì)的
7、優(yōu)點(diǎn),又考慮了現(xiàn)實(shí)世界與面向?qū)ο蠼饪臻g的映射關(guān)系(追求目標(biāo):?jiǎn)栴}求解空間盡可能簡(jiǎn)單化)l例:自行車對(duì)象數(shù)據(jù)抽象自行車類屬性:架子尺寸車輪尺寸顏色原材料廠商操作:轉(zhuǎn)彎移動(dòng)修理圖1.2對(duì)象和類classBike{private:doublesize1;doublesize2;intcolor;charmaterial[20];charmanu[20];public:voidwheel();voidmove();boolrepair();};C++描述l優(yōu)點(diǎn):1)有希望解決軟件工程的兩個(gè)主要問題——軟件復(fù)雜性控制和軟件生產(chǎn)率的
8、提高;2)符合人類的思維習(xí)慣,能夠自然地表現(xiàn)現(xiàn)實(shí)世界的實(shí)體和問題。四、面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言1.發(fā)展歷程:n封裝機(jī)制:Ada,Modula-2n對(duì)象抽象:Simula——OO錐形n面向?qū)ο蟮恼Z(yǔ)言:Smalltalk-80,C++,ObjectedPascal(Delphi),Java,C#,VB.NETuC++:以C