《面向?qū)ο蟪绦蛟O(shè)計(jì)》ppt課件1初中信息技術(shù).ppt
《《面向?qū)ο蟪绦蛟O(shè)計(jì)》ppt課件1初中信息技術(shù).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《面向?qū)ο蟪绦蛟O(shè)計(jì)》ppt課件1初中信息技術(shù).ppt(36頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第2章面向?qū)ο蟪绦蛟O(shè)計(jì) 2 1面向?qū)ο蟪绦蛟O(shè)計(jì)思想2 2類2 3對(duì)象 2 1面向?qū)ο蟪绦蛟O(shè)計(jì)思想 面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)1 抽象性用C 語(yǔ)言可以將該圖形描述如下 圓形 circle 數(shù)據(jù)抽象 doublex y r 行為抽象 setx sety setr draw 抽象是面向?qū)ο蠓椒ǖ暮诵?2 封裝性3 繼承性4 多態(tài)性多態(tài)性也是面向?qū)ο蟪绦蛟O(shè)計(jì)的重要特性之一 1 抽象 抽象是指從具體的實(shí)例中抽取出來(lái)共同的性質(zhì)并加以描述的過(guò)程 它忽略了一個(gè)主題中與當(dāng)前目標(biāo)無(wú)關(guān)的那些方面 以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面 抽象過(guò)程 先注意問(wèn)題的本質(zhì)及描述 其次是實(shí)現(xiàn)過(guò)程或細(xì)節(jié) 數(shù)據(jù)抽象 描述某類對(duì)象的屬性或狀態(tài) 對(duì)象相互區(qū)別的物理量 代碼抽象 描述某類對(duì)象的共有的行為特征或具有的功能 抽象的實(shí)現(xiàn) 通過(guò)類的聲明 抽象實(shí)例 鐘表 數(shù)據(jù)抽象 intHour intMinute intSecond代碼抽象 SetTime ShowTime 科目一考試駕駛員理論考試科目二考試場(chǎng)地考試科目三考試實(shí)際道路考試科目四考試安全文明駕駛常識(shí)考試2016年駕駛員試題網(wǎng)學(xué)車試題大全 抽象實(shí)例 鐘表類 classClock public voidSetTime intNewH intNewM intNewS voidShowTime private intHour Minute Second 2封裝 封裝指的是將方法和數(shù)據(jù)放于同一對(duì)象中 使得對(duì)數(shù)據(jù)的存取只能通過(guò)該對(duì)象本身的方法來(lái)進(jìn)行 主要思想是將數(shù)據(jù) 數(shù)據(jù)成員 及處理這些數(shù)據(jù)的相應(yīng)函數(shù) 成員函數(shù) 封裝到類class中 C 的一種新的定義數(shù)據(jù)類型的方法 而使用類的變量則稱為對(duì)象 object 在對(duì)象內(nèi) 只有屬于該對(duì)象的成員函數(shù)才可以存取該對(duì)象的數(shù)據(jù)成員 這樣 其他函數(shù)就不會(huì)破壞到它的內(nèi)容 從而起到保護(hù)和隱藏?cái)?shù)據(jù)的效果 將抽象出的數(shù)據(jù)成員 代碼成員相結(jié)合 將它們視為一個(gè)整體 目的是增強(qiáng)安全性和簡(jiǎn)化編程 使用者不必了解具體的實(shí)現(xiàn)細(xì)節(jié) 而只需要通過(guò)外部接口 以特定的訪問(wèn)權(quán)限 來(lái)使用類的成員 實(shí)現(xiàn)封裝 類聲明中的 實(shí)例 3繼承 繼承是一種聯(lián)結(jié)類與類之間的層次模型 它允許和鼓勵(lì)類的重用 提供了一種明確表達(dá)共性的方法 一個(gè)新類可以從現(xiàn)有的類中派生 這個(gè)過(guò)程稱為類繼承繼承性很好地解決了軟件的可重用問(wèn)題實(shí)現(xiàn) 聲明派生類 4多態(tài) 多態(tài)性指的是同一消息被不同的對(duì)象接收后被解釋為不同含義的能力 也就是一個(gè)接口名稱具有多種功能 即同一名稱 不同的功能實(shí)現(xiàn)方式 多態(tài)性語(yǔ)言具有語(yǔ)言靈活 抽象 行為共享 代碼共享的優(yōu)勢(shì) 很好的解決了應(yīng)用程序函數(shù)同名的問(wèn)題 目的 達(dá)到行為標(biāo)識(shí)統(tǒng)一 減少程序中標(biāo)識(shí)符的個(gè)數(shù) 實(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ù)類型的元素組成一個(gè)新的獨(dú)立統(tǒng)一體 例2 1 定義一個(gè)職工Employee結(jié)構(gòu)數(shù)據(jù)類型 它包括姓名 工資 地址 移動(dòng)電話 structEmployee charname 9 floatsalary charaddress 40 charmobile 12 定義一個(gè)結(jié)構(gòu)體 事實(shí)上是定義了一種數(shù)據(jù)類型 程序并不會(huì)給類型分配內(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 要想拜謁她 請(qǐng)到 EmployeeA address 或直接傳呼 EmployeeA mobile endl 例2 2 定義一個(gè)具體職工EmployeeA 并對(duì)該職工進(jìn)行賦值 程序的主文件名為DefStru cpp 程序的運(yùn)行結(jié)果是 滅絕師太已經(jīng)領(lǐng)上工資了 其數(shù)目是168 47要想拜謁她 請(qǐng)到峨眉山上或直接傳呼13688667755 2 類類是從一個(gè)個(gè)具體的事物中把共同特征抽取出來(lái)形成的一個(gè)概念 它反映了事物之間的共性在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)識(shí)符 它的命名規(guī)則與變量名的命名規(guī)則相同 一對(duì)花括號(hào)內(nèi)是類的說(shuō)明部分 說(shuō)明該類的成員 類的成員包括成員變量和成員函數(shù)兩部分 上述在類的成員變量和成員函數(shù)前面出現(xiàn)的關(guān)鍵字 public 公有 private 私有 或protected 保護(hù) 表示成員的訪問(wèn)屬性 在類中聲明的成員變量若不特別指明 都被視為私有類型 私有類型的數(shù)據(jù)只允許類本身聲明的函數(shù)對(duì)其進(jìn)行存取 而類外部的任何函數(shù)都不能訪問(wèn) 公有類型的成員可以被任何函數(shù)來(lái)訪問(wèn) 它們是類與外部的接口 類的定義反映了對(duì)類的描述 定義一個(gè)類就是定義一種數(shù)據(jù)類型 把握類的定義首先要掌握類中包含反映事物屬性的那些成員變量和反映事物操作的那些成員函數(shù) 例2 3 定義一個(gè)職工TEmployee類 它包括姓名 工資 地址 移動(dòng)電話數(shù)據(jù)成員和兩個(gè)成員函數(shù) 分別實(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 定義一個(gè)交通工具類TVehicle 它具有輪子個(gè)數(shù) 載重兩個(gè)數(shù)據(jù)成員和三個(gè)成員函數(shù) 分別實(shí)現(xiàn)輸入交通工具的輪子和載重 取輪子個(gè)數(shù)和載重 classTVehicle public voidInitialize intwheels floatweight 交通工具的初始化intGetWheels void 取輪子個(gè)數(shù)floatGetWeight void 取載重private intm wheels 輪子個(gè)數(shù)floatm weight 載重 2 2 3構(gòu)造函數(shù) 構(gòu)造函數(shù)的作用是在對(duì)象被創(chuàng)建時(shí)使用特定的值構(gòu)造對(duì)象 或者說(shuō)將對(duì)象初始化為一個(gè)特定的狀態(tài) 在對(duì)象創(chuàng)建時(shí)由系統(tǒng)自動(dòng)調(diào)用 如果程序中未聲明 則系統(tǒng)自動(dòng)產(chǎn)生出一個(gè)默認(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ù)的實(shí)現(xiàn) Clock Clock intNewH intNewM intNewS Hour NewH Minute NewM Second NewS 建立對(duì)象時(shí)構(gòu)造函數(shù)的作用 intmain Clockc 0 0 0 隱含調(diào)用構(gòu)造函數(shù) 將初始值作為實(shí)參 c ShowTime 拷貝構(gòu)造函數(shù) 拷貝構(gòu)造函數(shù)是一種特殊的構(gòu)造函數(shù) 其形參為本類的對(duì)象引用 class類名 public 類名 形參 構(gòu)造函數(shù)類名 類名 對(duì)象名 拷貝構(gòu)造函數(shù) 類名 類名 類名 對(duì)象名 拷貝構(gòu)造函數(shù)的實(shí)現(xiàn) 函數(shù)體 2 2 3析構(gòu)函數(shù) 完成對(duì)象被刪除前的一些清理工作 在對(duì)象的生存期結(jié)束的時(shí)刻系統(tǒng)自動(dòng)調(diào)用它 然后再釋放此對(duì)象所屬的空間 如果程序中未聲明析構(gòu)函數(shù) 編譯器將自動(dòng)產(chǎn)生一個(gè)默認(rèn)的析構(gòu)函數(shù) 例2 5 一個(gè)包含構(gòu)造函數(shù)和析構(gòu)函數(shù)的例子 程序的主文件為ConstructorExam cpp include includeclassExl private intx public Exl cout Ex1類的對(duì)象建立 其構(gòu)造函數(shù)被調(diào)用 n Exl cout Ex1類的對(duì)象撤消 其析構(gòu)函數(shù)被調(diào)用 n voidsetdata inti x i 2 在類中定義成員函數(shù)setdata voidprint 類Exl定義結(jié)束 classEx2 inty public Ex2 cout Ex2類的對(duì)象建立 其構(gòu)造函數(shù)被調(diào)用 n Ex2 cout Ex2類的對(duì)象撤消 其析構(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 程序運(yùn)行結(jié)果為 Ex1類的對(duì)象建立 其構(gòu)造函數(shù)被調(diào)用Ex2類的對(duì)象建立 其構(gòu)造函數(shù)被調(diào)用classExl 10classEx2 25Ex2類的對(duì)象撤消 其析構(gòu)函數(shù)被調(diào)用Ex1類的對(duì)象撤消 其析構(gòu)函數(shù)被調(diào)用 2 3對(duì)象 2 3 1對(duì)象的聲明2 3 2對(duì)象的使用2 3 5對(duì)象的深入理解 2 3 2對(duì)象的使用 當(dāng)聲明了對(duì)象后 就可以使用該對(duì)象所隸屬的類的公有 在public部分定義的 成員變量和成員函數(shù) 對(duì)象的使用 關(guān)鍵是使用對(duì)象所屬類的成員函數(shù) 即熟悉該類都有哪些常用的成員函數(shù) 例2 6 建立一個(gè)日期類 并且主函數(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 建立一個(gè)日期對(duì)象Today SetDate 2004 8 1 調(diào)用設(shè)置日期的函數(shù)Today ShowDate 調(diào)用顯示日期的函數(shù) 程序運(yùn)行結(jié)果為 Thedateis2004 8 1- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 面向?qū)ο蟪绦蛟O(shè)計(jì) 面向 對(duì)象 程序設(shè)計(jì) ppt 課件 初中 信息技術(shù)
鏈接地址:http://www.3dchina-expo.com/p-10986191.html