《面向?qū)ο蟪绦蛟O(shè)計》ppt課件1初中信息技術(shù).ppt
-
資源ID:10986191
資源大?。?span id="lq3gpp1" class="font-tahoma">720.50KB
全文頁數(shù):36頁
- 資源格式: PPT
下載積分:9.9積分
快捷下載
會員登錄下載
微信登錄下載
微信掃一掃登錄
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。
|
《面向?qū)ο蟪绦蛟O(shè)計》ppt課件1初中信息技術(shù).ppt
第2章面向?qū)ο蟪绦蛟O(shè)計 2 1面向?qū)ο蟪绦蛟O(shè)計思想2 2類2 3對象 2 1面向?qū)ο蟪绦蛟O(shè)計思想 面向?qū)ο蟪绦蛟O(shè)計的特點1 抽象性用C 語言可以將該圖形描述如下 圓形 circle 數(shù)據(jù)抽象 doublex y r 行為抽象 setx sety setr draw 抽象是面向?qū)ο蠓椒ǖ暮诵?2 封裝性3 繼承性4 多態(tài)性多態(tài)性也是面向?qū)ο蟪绦蛟O(shè)計的重要特性之一 1 抽象 抽象是指從具體的實例中抽取出來共同的性質(zhì)并加以描述的過程 它忽略了一個主題中與當(dāng)前目標(biāo)無關(guān)的那些方面 以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面 抽象過程 先注意問題的本質(zhì)及描述 其次是實現(xiàn)過程或細(xì)節(jié) 數(shù)據(jù)抽象 描述某類對象的屬性或狀態(tài) 對象相互區(qū)別的物理量 代碼抽象 描述某類對象的共有的行為特征或具有的功能 抽象的實現(xiàn) 通過類的聲明 抽象實例 鐘表 數(shù)據(jù)抽象 intHour intMinute intSecond代碼抽象 SetTime ShowTime 科目一考試駕駛員理論考試科目二考試場地考試科目三考試實際道路考試科目四考試安全文明駕駛常識考試2016年駕駛員試題網(wǎng)學(xué)車試題大全 抽象實例 鐘表類 classClock public voidSetTime intNewH intNewM intNewS voidShowTime private intHour Minute Second 2封裝 封裝指的是將方法和數(shù)據(jù)放于同一對象中 使得對數(shù)據(jù)的存取只能通過該對象本身的方法來進(jìn)行 主要思想是將數(shù)據(jù) 數(shù)據(jù)成員 及處理這些數(shù)據(jù)的相應(yīng)函數(shù) 成員函數(shù) 封裝到類class中 C 的一種新的定義數(shù)據(jù)類型的方法 而使用類的變量則稱為對象 object 在對象內(nèi) 只有屬于該對象的成員函數(shù)才可以存取該對象的數(shù)據(jù)成員 這樣 其他函數(shù)就不會破壞到它的內(nèi)容 從而起到保護(hù)和隱藏數(shù)據(jù)的效果 將抽象出的數(shù)據(jù)成員 代碼成員相結(jié)合 將它們視為一個整體 目的是增強(qiáng)安全性和簡化編程 使用者不必了解具體的實現(xiàn)細(xì)節(jié) 而只需要通過外部接口 以特定的訪問權(quán)限 來使用類的成員 實現(xiàn)封裝 類聲明中的 實例 3繼承 繼承是一種聯(lián)結(jié)類與類之間的層次模型 它允許和鼓勵類的重用 提供了一種明確表達(dá)共性的方法 一個新類可以從現(xiàn)有的類中派生 這個過程稱為類繼承繼承性很好地解決了軟件的可重用問題實現(xiàn) 聲明派生類 4多態(tài) 多態(tài)性指的是同一消息被不同的對象接收后被解釋為不同含義的能力 也就是一個接口名稱具有多種功能 即同一名稱 不同的功能實現(xiàn)方式 多態(tài)性語言具有語言靈活 抽象 行為共享 代碼共享的優(yōu)勢 很好的解決了應(yīng)用程序函數(shù)同名的問題 目的 達(dá)到行為標(biāo)識統(tǒng)一 減少程序中標(biāo)識符的個數(shù) 實現(xiàn) 重載函數(shù)和虛函數(shù) 2 2面向?qū)ο蟮幕?類 2 2 1從結(jié)構(gòu)到類2 2 2類的定義2 2 3構(gòu)造函數(shù)2 2 4析構(gòu)函數(shù) 2 2 1從結(jié)構(gòu)到類 1 結(jié)構(gòu)體VC不僅提供了大量預(yù)先定義的數(shù)據(jù)類型 而且還支持自定義的數(shù)據(jù)類型 結(jié)構(gòu)就是把相互關(guān)聯(lián)的一些基本數(shù)據(jù)類型的元素組成一個新的獨立統(tǒng)一體 例2 1 定義一個職工Employee結(jié)構(gòu)數(shù)據(jù)類型 它包括姓名 工資 地址 移動電話 structEmployee charname 9 floatsalary charaddress 40 charmobile 12 定義一個結(jié)構(gòu)體 事實上是定義了一種數(shù)據(jù)類型 程序并不會給類型分配內(nèi)存 內(nèi)存分配是發(fā)生在結(jié)構(gòu)體變量上 include iostream h include string h voidmain structEmployeeEmployeeA strcpy EmployeeA name 滅絕師太 EmployeeA salary 168 47 strcpy EmployeeA address 峨眉山上 strcpy EmployeeA mobile 13688667755 cout EmployeeA name 已經(jīng)領(lǐng)上工資了 其數(shù)目是 EmployeeA salary endl cout 要想拜謁她 請到 EmployeeA address 或直接傳呼 EmployeeA mobile endl 例2 2 定義一個具體職工EmployeeA 并對該職工進(jìn)行賦值 程序的主文件名為DefStru cpp 程序的運行結(jié)果是 滅絕師太已經(jīng)領(lǐng)上工資了 其數(shù)目是168 47要想拜謁她 請到峨眉山上或直接傳呼13688667755 2 類類是從一個個具體的事物中把共同特征抽取出來形成的一個概念 它反映了事物之間的共性在C 中 在類的定義中 不僅有反映事物屬性的成員變量 還有反映屬性操作的成員函數(shù) 類一種自定義數(shù)據(jù)類型 2 2 2類的定義 在C 中類的定義方式為 class類名 private 私有數(shù)據(jù)及成員函數(shù) protected 保護(hù)數(shù)據(jù)及成員函數(shù) public 公有數(shù)據(jù)及成員函數(shù) class是類定義符 類名是一種標(biāo)識符 它的命名規(guī)則與變量名的命名規(guī)則相同 一對花括號內(nèi)是類的說明部分 說明該類的成員 類的成員包括成員變量和成員函數(shù)兩部分 上述在類的成員變量和成員函數(shù)前面出現(xiàn)的關(guān)鍵字 public 公有 private 私有 或protected 保護(hù) 表示成員的訪問屬性 在類中聲明的成員變量若不特別指明 都被視為私有類型 私有類型的數(shù)據(jù)只允許類本身聲明的函數(shù)對其進(jìn)行存取 而類外部的任何函數(shù)都不能訪問 公有類型的成員可以被任何函數(shù)來訪問 它們是類與外部的接口 類的定義反映了對類的描述 定義一個類就是定義一種數(shù)據(jù)類型 把握類的定義首先要掌握類中包含反映事物屬性的那些成員變量和反映事物操作的那些成員函數(shù) 例2 3 定義一個職工TEmployee類 它包括姓名 工資 地址 移動電話數(shù)據(jù)成員和兩個成員函數(shù) 分別實現(xiàn)輸入職工數(shù)據(jù)和顯示職工屬性 classTEmployee public voidinput char name floatsalary char address char mobile voiddisplay private charm name 9 floatm salary charm address 40 charm mobile 12 例2 4 定義一個交通工具類TVehicle 它具有輪子個數(shù) 載重兩個數(shù)據(jù)成員和三個成員函數(shù) 分別實現(xiàn)輸入交通工具的輪子和載重 取輪子個數(shù)和載重 classTVehicle public voidInitialize intwheels floatweight 交通工具的初始化intGetWheels void 取輪子個數(shù)floatGetWeight void 取載重private intm wheels 輪子個數(shù)floatm weight 載重 2 2 3構(gòu)造函數(shù) 構(gòu)造函數(shù)的作用是在對象被創(chuàng)建時使用特定的值構(gòu)造對象 或者說將對象初始化為一個特定的狀態(tài) 在對象創(chuàng)建時由系統(tǒng)自動調(diào)用 如果程序中未聲明 則系統(tǒng)自動產(chǎn)生出一個默認(rèn)形式的構(gòu)造函數(shù) 允許為內(nèi)聯(lián)函數(shù) 重載函數(shù) 帶默認(rèn)形參值的函數(shù) 構(gòu)造函數(shù)舉例 classClock public Clock intNewH intNewM intNewS 構(gòu)造函數(shù)voidSetTime intNewH intNewM intNewS voidShowTime private intHour Minute Second 構(gòu)造函數(shù)舉例 構(gòu)造函數(shù)的實現(xiàn) Clock Clock intNewH intNewM intNewS Hour NewH Minute NewM Second NewS 建立對象時構(gòu)造函數(shù)的作用 intmain Clockc 0 0 0 隱含調(diào)用構(gòu)造函數(shù) 將初始值作為實參 c ShowTime 拷貝構(gòu)造函數(shù) 拷貝構(gòu)造函數(shù)是一種特殊的構(gòu)造函數(shù) 其形參為本類的對象引用 class類名 public 類名 形參 構(gòu)造函數(shù)類名 類名 對象名 拷貝構(gòu)造函數(shù) 類名 類名 類名 對象名 拷貝構(gòu)造函數(shù)的實現(xiàn) 函數(shù)體 2 2 3析構(gòu)函數(shù) 完成對象被刪除前的一些清理工作 在對象的生存期結(jié)束的時刻系統(tǒng)自動調(diào)用它 然后再釋放此對象所屬的空間 如果程序中未聲明析構(gòu)函數(shù) 編譯器將自動產(chǎn)生一個默認(rèn)的析構(gòu)函數(shù) 例2 5 一個包含構(gòu)造函數(shù)和析構(gòu)函數(shù)的例子 程序的主文件為ConstructorExam cpp include includeclassExl private intx public Exl cout Ex1類的對象建立 其構(gòu)造函數(shù)被調(diào)用 n Exl cout Ex1類的對象撤消 其析構(gòu)函數(shù)被調(diào)用 n voidsetdata inti x i 2 在類中定義成員函數(shù)setdata voidprint 類Exl定義結(jié)束 classEx2 inty public Ex2 cout Ex2類的對象建立 其構(gòu)造函數(shù)被調(diào)用 n Ex2 cout Ex2類的對象撤消 其析構(gòu)函數(shù)被調(diào)用 n voidsetdata intj y j j voidprint 類Ex2定義結(jié)束voidEx2 print cout classEx2 setw 6 y n 成員函數(shù)print 定義結(jié)束 voidmain Exls Ex2t s setdata 5 s print t setdata 5 t print 程序運行結(jié)果為 Ex1類的對象建立 其構(gòu)造函數(shù)被調(diào)用Ex2類的對象建立 其構(gòu)造函數(shù)被調(diào)用classExl 10classEx2 25Ex2類的對象撤消 其析構(gòu)函數(shù)被調(diào)用Ex1類的對象撤消 其析構(gòu)函數(shù)被調(diào)用 2 3對象 2 3 1對象的聲明2 3 2對象的使用2 3 5對象的深入理解 2 3 2對象的使用 當(dāng)聲明了對象后 就可以使用該對象所隸屬的類的公有 在public部分定義的 成員變量和成員函數(shù) 對象的使用 關(guān)鍵是使用對象所屬類的成員函數(shù) 即熟悉該類都有哪些常用的成員函數(shù) 例2 6 建立一個日期類 并且主函數(shù)中使用其公有的成員函 主文件為DefObject cpp includeclassTDate public voidSetDate intyear intmonth intday m year year m month month m day day voidShowDate cout Thedateis m year m month m day endl private intm year intm month intm day voidmain TDateToday 建立一個日期對象Today SetDate 2004 8 1 調(diào)用設(shè)置日期的函數(shù)Today ShowDate 調(diào)用顯示日期的函數(shù) 程序運行結(jié)果為 Thedateis2004 8 1