面向?qū)ο蟪绦蛟O(shè)計復(fù)習(xí)資料1_第1頁
面向?qū)ο蟪绦蛟O(shè)計復(fù)習(xí)資料1_第2頁
面向?qū)ο蟪绦蛟O(shè)計復(fù)習(xí)資料1_第3頁
面向?qū)ο蟪绦蛟O(shè)計復(fù)習(xí)資料1_第4頁
面向?qū)ο蟪绦蛟O(shè)計復(fù)習(xí)資料1_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

面向?qū)ο蟪绦蛟O(shè)計復(fù)習(xí)資料第2章面向?qū)ο笏季S建立面向?qū)ο蟪绦蛟O(shè)計的特征:①模塊化;②抽象化;③封裝;④可組合;⑤繼承;⑥軟件持續(xù)使用時間更長。面向?qū)ο笏季S分為兩步:一是需求分析,識別出有哪些對象,它們分別做什么事(who&&what);二是如何利用對象協(xié)作完成一件完整的事情(how)。?類與對象的概念和關(guān)系:1)類是面向?qū)ο蟪绦蛟O(shè)計方法的核心,利用類可以實現(xiàn)對數(shù)據(jù)的封裝和隱蔽。在面向?qū)ο蟪绦蛟O(shè)計中,程序模塊是由類構(gòu)成。類是對邏輯相關(guān)的函數(shù)與數(shù)據(jù)的封裝,它是對問題的抽象描述。C++的語法提供了對自定義類型的支持,這就是類。正如基本數(shù)據(jù)類型中隱含的數(shù)據(jù)和操作,因此在定義一個類時也要說明數(shù)據(jù)和操作。2)類實際上是一種抽象機制,它描述了一類為問題的屬性和行為,即類描述了一類對象的數(shù)據(jù)存儲和操作特征。每一個怪物都有一些共同的靜態(tài)特征,這些共同的特征抽象到類中,統(tǒng)稱為該類的屬性,屬性通過聲明普通變量來實現(xiàn)。每一個怪物都有一些共同的動態(tài)行為,這些共同的行為抽象到類中,統(tǒng)稱為該類的操作,操作通過聲明普通變量來實現(xiàn)。怪物類偽類圖:偽類圖含義UML圖怪物{名稱;級別;?攻擊力;」生命值HP;初始化怪物;怪物進(jìn)行攻擊;.判斷怪物是否存意)類名邊界開始怪物屬性操作名稱;級別;攻擊力;生命值HP;邊界結(jié)束初始化怪物;怪物進(jìn)行攻擊;判斷怪物是否存活;第3章面向?qū)ο笏季S建模UML:統(tǒng)一建模語言或標(biāo)準(zhǔn)建模語言1)類圖:常見的UML圖,顯示了建模的靜態(tài)結(jié)構(gòu),特別是模型中存在的類、類的內(nèi)部結(jié)構(gòu)以及他們與其他類的關(guān)系等。類與類之間的常見關(guān)系:①依賴關(guān)系:依賴關(guān)系的偶然性和臨時性一一人依賴船②聚合關(guān)系:整體與局部之間是可別離的③繼承關(guān)系:含義:兒子類繼承父親類,不僅繼承所有屬性和行為,還自己拓展2)時序圖:也稱為序列圖或循序圖或順序圖,是一種UML交互圖,它通過描述對象之間發(fā)送消息的時間順序顯示多個對象之間的動態(tài)協(xié)作。類圖表示“不因時間而變化的局部(靜態(tài)關(guān)系)”;時序圖表示“隨時間而變化的局部(動態(tài)行為)”時序圖的元素組成和繪制流程:對象:類的實例;三種狀態(tài)一一激活、運行、銷毀生命線:對象在一段時間內(nèi)的存在激活:對象操作的執(zhí)行消息:對象之間的通信機制(五類:遞歸調(diào)用、普通操作、返回消息、導(dǎo)步調(diào)用)3)用例圖:指由參與者、用例以及他們之間的關(guān)系構(gòu)成的用于描述系統(tǒng)功能的視圖。第4章程序設(shè)計語言C++初識C語言:是一門面向過程、抽象化的通用程序設(shè)計語言,廣泛應(yīng)用于底層開發(fā)。C++:是C語言的繼承,它既可以進(jìn)行C語言的過程化程序設(shè)計,又可以進(jìn)行以抽象數(shù)據(jù)類型為特點的基于對象的程序設(shè)計,還可以進(jìn)行以繼承和多態(tài)為特點的面向?qū)ο蟮某绦蛟O(shè)計。#include<iostream>include預(yù)編譯命令,將有關(guān)的“頭文件”包括到用戶源文件中。iostream是個文件庫,其表小輸入輸出流usingnamespacestd\std是一種命名空間,屬于iostream庫,在不同的命名空間下的函數(shù)可以重名intmain。定義主函數(shù),必須有且僅有一個main函數(shù)作為程序的入口。{cout?nHelloWorld!n?ezt6//;<<表示流的方向;endl表示回車換行°system()函數(shù)用來調(diào)用系統(tǒng)命令;"pause”命令表示暫停。return0;}函數(shù)結(jié)束的時候要有返回值。include”文件名“一先尋找工程當(dāng)前目錄,找不到再尋找安裝目錄。適用于導(dǎo)入用戶自定義的、處在工程當(dāng)前目錄下的文件。include〈文件名〉一不尋找工程當(dāng)前目錄,直接尋找安裝目錄。適用于導(dǎo)入標(biāo)準(zhǔn)庫(文件名)中的文件。程序注釋:單行注釋“//”和多行注釋”/*多行內(nèi)容*/”C++編譯過程經(jīng)歷步驟:1、用C++語言編寫程序。2、對源程序進(jìn)行編譯。包括錯誤(Error)和警告(Warning)3、將目標(biāo)文件連接起來。4、執(zhí)行程序。5、分析運行結(jié)果。變量:程序運行過程中其值可以改變。必須先定義后使用,區(qū)分大小寫;常量:程序運行過程中其值不能改變。分類:整型常量、實型常量、字符型常量、字符串常量和符號常量。變量定義:“變量類型變量名”常量定義:"const數(shù)據(jù)類型常量名「數(shù)值”?數(shù)據(jù)類型:基本數(shù)據(jù)類型int整數(shù),在目前絕大多數(shù)機器上占4個字節(jié)float單精度浮點數(shù),4個字節(jié)double雙精度浮點數(shù),8個字節(jié)char字符,1個字節(jié),表示256個ASCII字符,或.128?127的整數(shù)數(shù)據(jù)類型修飾符shortint簡寫short,短整數(shù),2個字節(jié)longint簡寫long,長整數(shù),4個字節(jié)unsigned用來修飾char、int、short和long,無符號整數(shù)(用0)?string字符串類型,需要預(yù)編譯(#include〈string〉)數(shù)據(jù)類型字節(jié)數(shù)取值范圍數(shù)據(jù)類型字節(jié)數(shù)取值范圍int4-231?231-1unsignedint40?232-1char1-128?127unsignedchar10-255long4-231?231-1unsignedlong40?232-1short2-32768?32767unsignedshort20?65535float4double8-L7e308?L7e308

舛■&付節(jié):ZZ賦值符號右邊的值賦給左邊????域作用符?輸出操作符將數(shù)據(jù)打印輸出輸出流:std:coutv<"輸出內(nèi)容"v<std::endl?輸入操作符接收輸入數(shù)據(jù)到變量輸入流:std:cin>>“變量”》std::endl控制語句:條件判斷語句if(條件){語句體;}if(條件){語句體1;}else{語句體2;}if(條件1){語句體1;}elseif(條件2){語句體2;}else{語句體3;}switch(表達(dá)式){case常量表達(dá)式1:滿足常量表達(dá)式1時執(zhí)行的語句;case常量表達(dá)式2:滿足常量表達(dá)式2時執(zhí)行的語句;default:以上都不滿足時執(zhí)行的語句;}easel執(zhí)行完后繼續(xù)執(zhí)行case2循環(huán)執(zhí)行語句for(循環(huán)初始值福環(huán)條件,循環(huán)語句)(循環(huán)體;}while(循環(huán)條件){循環(huán)體;}do{循環(huán)體;}while(循環(huán)條件)可能不會執(zhí)行至少執(zhí)行一次轉(zhuǎn)向語句break;提前結(jié)束當(dāng)前循環(huán)或條件判斷continue;結(jié)束本次循環(huán),進(jìn)入下一次循環(huán)指針與引用:指針一一存儲的信息是對象在內(nèi)存中的地址。通過指針,可以間接地訪問對象。引用一一是一個對象的別名,系統(tǒng)不為引用分配內(nèi)存空間,對引用的改動就是對目標(biāo)對象的改動。&:取變量地址;*:取指針?biāo)傅淖兞康闹担坏膬蓚€含義:1、取該變量的地址2、表示引用第5章類與對象的實現(xiàn)?類的構(gòu)成通過對LostCraft游戲的分析,別離出多個對象,并抽象成4個類:英雄類、技能類、怪物類、場景類

一個類由屬性和操作兩個局部組成:具有相同特性(屬性)和行為(操作、方法)的對象的抽象就是類;類具有屬性,它是對象狀態(tài)的抽象,用數(shù)據(jù)結(jié)構(gòu)(普通變量等)來描述類的屬性;類具有操作,它是對象行為的抽象,用操作名和實現(xiàn)該操作的方法(函數(shù))來描述。類的實現(xiàn)與聲明定義類的一般形式:classcRectangleclass<類名〉{public:{訪問權(quán)限:doublelength;//矩形長doublewidth;〃矩形寬byter,g,b;〃矩形顏色屬性;doublecircumference();〃求矩形周長doublearea();};〃求矩形面積操作;}class是定義類的關(guān)鍵字,表示現(xiàn)在要定義個類;〈類名〉為一個合法的標(biāo)識符,是程序設(shè)計者為類定義的名稱,該類的命名規(guī)范與變量的命名規(guī)范相同訪問權(quán)限用于標(biāo)出所使用的屬性和方法的相關(guān)權(quán)限一對大括號表示類的邊界,邊界內(nèi)是類的說明局部,稱為類體在類體的后面有一個分號,表示類定義的結(jié)束類的聲明全部寫在頭文件(.h)中,而實現(xiàn)的局部寫在源文件(?cpp)文件中#pragmaonce#include<string>usingnamespacestd;classCraftsmanship{public:Craftsmanship(void);〃構(gòu)造函數(shù)?Craftsmanship(void);〃析構(gòu)函數(shù)stringname;〃技能名稱intconsumption;〃技能所消耗的魔法值intATK;〃技能攻擊力intcooling;//技能規(guī)定的冷卻時間intavailable;//技能所需英雄等級intaction;〃技能已冷卻回合數(shù));class:表示定義一個類;Craftsmanship:表力、類名;public:表小成貝的訪問權(quán)限,①public表示公共的,可以在類外部訪問;②private表小私有的,只能在類內(nèi)部訪問;③protected表小保護的,只能在類和同包中訪問;如果沒有寫訪問權(quán)限,那么默認(rèn)私有的private;大括號結(jié)尾處的分號表示整個類定義完成;要點:如果一個類僅僅被聲明了卻沒有實現(xiàn)的話,不可以使用;在一個類中,屬性變量只能被聲明,不可以進(jìn)行初始化;在一個類中,函數(shù)在類中聲明,函數(shù)體可以在類中定義(實現(xiàn)),也可以在類外面定義;但為了提高程序可讀性,通常在類中只能做聲明而不實現(xiàn)。?對象實例化定義格式:存儲類型V類名〉V對象名對象名1|斜體字為非必須,粗體下劃線為必須存儲類型可選,默認(rèn)為自動類型(auto);〈類名〉為用戶自定義的類的名字;〈對象名〉為要創(chuàng)立對象的名字。一次可創(chuàng)立多個對象,用逗號隔開賦值格式:對象名.屬性名=具體數(shù)值|代表引用對象中某一成員還能調(diào)用對象中的函數(shù)(構(gòu)造函數(shù)和析構(gòu)函數(shù)除外)#pragmaonce#include"Craftsmanship.h"#includeHMonster.hHclassHeroprivate:#pragmaonce:能夠保證當(dāng)前的頭文件只被編譯一次,防止多次編譯。#includenCraftsmanship.hM:表小引入頭文件classHero:該語句是類的前置聲明,防止出現(xiàn)死循環(huán)引用現(xiàn)象。private:表示私有的,即變量iAttack和函數(shù)settlement(intlevel)只能由英雄類中的函數(shù)訪問,其他位置無法訪問。?對象間的協(xié)作實現(xiàn)如果函數(shù)在類外實現(xiàn),那么必須在函數(shù)名前加上類名,否那么不能實現(xiàn)”::"是作用域限定符,用來聲明函數(shù)屬于哪一類;類必須先在類中做原型聲明,然后才能在類外實現(xiàn);system(npsudrn):等待用戶按鍵然后返回,按任意鍵繼續(xù);system(nclsn):清屏操作關(guān)鍵字new:①在堆上獲得一塊內(nèi)存空間、②調(diào)用構(gòu)造函數(shù)、③返回正確的指針棧(堆棧)是限定僅在表尾進(jìn)行插入和刪除操作的線性表。單獨存放數(shù)據(jù)的那塊內(nèi)存稱為“堆。存儲指針那塊內(nèi)存稱為“?!盪ser*Lucy=newUser():聲明一個指針對象Lucy,在名稱堆區(qū)保存Lucy這個對象的所有信息,在棧中保存Lucy的堆地址。delete對象名;|銷毀之前引用的對象第6章深入學(xué)習(xí)面對對象函數(shù)成員函數(shù):屬于一個類的函數(shù);用于完成對象的初始化類函數(shù):類的成員函數(shù),屬于一個類的成員,出現(xiàn)在類體中。?函數(shù)重載:又稱函數(shù)名重載或函數(shù)重名,是指同一個函數(shù)名可以有多種函數(shù)實現(xiàn),或者說實現(xiàn)不同功能細(xì)節(jié)的函數(shù)可以具有相同的函數(shù)名。實現(xiàn)函數(shù)重載的條件為:參數(shù)列表不同。函數(shù)重載voidshowlnfo();voidshowlnfo(stringname);voidshowlnfo(stringname);voidshowlnfo(intnum);①參數(shù)個數(shù)不同②參數(shù)類型不同?構(gòu)造函數(shù):一種特殊的成員函數(shù),是由系統(tǒng)在創(chuàng)立對象時自動調(diào)用的,且構(gòu)造函數(shù)不允許被手動調(diào)用。特點:沒有返回值,與類同名;優(yōu)勢:減輕代碼量負(fù)擔(dān),使得對象初始化功能變得更簡單便捷。由用戶自定義,可根據(jù)初始值的要求設(shè)計函數(shù)體。聲明格式:"構(gòu)造函數(shù)名(類型1形參1,類型2形參2,…){}"對象定義格式:“類名對象名(實參1,實參2.?.);”有參數(shù)的構(gòu)造函數(shù)稱為有參構(gòu)造函數(shù),沒有參數(shù)的構(gòu)造函數(shù)稱為默認(rèn)構(gòu)造函數(shù);如果類中沒有編寫構(gòu)造函數(shù),那么只能創(chuàng)立無參數(shù)的對象,系統(tǒng)會自動默認(rèn)并添加該類的無參構(gòu)造函數(shù)。?封裝:即隱藏細(xì)節(jié),只暴露出最終實現(xiàn)的公共接口。,寫代碼時,將類的聲明與成員函數(shù)實現(xiàn)局部進(jìn)行別離voidUser::setName(string_name){this->name=name;}〃語句1this指針只能在類的成員里使用;由this指向的_name表示User類中的屬性,而等號另一端那么是形參_name。賦值語句從右向左賦值,因此該句話表示形參給成員屬性值。構(gòu)造函數(shù)的重載:構(gòu)造函數(shù)具有相同的名字(即類名),而參數(shù)的個數(shù)或參數(shù)的類型不相同?析構(gòu)函數(shù):完成對象的銷毀;不能用手動調(diào)用,是當(dāng)對象的生命周期結(jié)束時,由程序自動執(zhí)行。關(guān)于析構(gòu)函數(shù)注意點:完成一些清理工作,但不會刪除對象本身;沒有返回值,沒有參數(shù);不能被重載,因此可以有多個構(gòu)造函數(shù),但只有一個析構(gòu)函數(shù);功能可以由用戶自定義。第7章繼承繼承就是將公共的東西提取出來,封裝成應(yīng)該類,稱為父類或基類,在此基礎(chǔ)上編寫的其他屬性和方法稱為子類或派生

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論