




已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C 程序設(shè)計(jì)語(yǔ)言課程內(nèi)容 第一章 概述第二章 C 語(yǔ)言的基本原理第三章 C 中對(duì)象的創(chuàng)建第四章 面向?qū)ο蟮木幊碳夹g(shù)第五章 C 編程第六章 編寫(xiě)基于 NET的應(yīng)用程序第七章 使用ADO NET訪問(wèn)數(shù)據(jù) 第八章 創(chuàng)建基于Windows的應(yīng)用程序第九章 在C 應(yīng)用程序中使用XMLWebService第十章 創(chuàng)建Web應(yīng)用程序十一章 應(yīng)用程序設(shè)置和部署十二章 進(jìn)階學(xué)習(xí)目標(biāo) 面向?qū)ο蟮木幊碳夹g(shù) 內(nèi)容 設(shè)計(jì)對(duì)象繼承性多態(tài)性 C 設(shè)計(jì)對(duì)象4 1 學(xué)習(xí)完本節(jié)后 你將能夠 在對(duì)象中封裝信息使用屬性管理對(duì)封裝數(shù)據(jù)的訪問(wèn) 封裝性4 1 2 將類(lèi)的某些數(shù)據(jù)和操作這些數(shù)據(jù)的代碼隱藏起來(lái) 這就是封裝封裝的好處 可以隱藏類(lèi)實(shí)現(xiàn)的細(xì)節(jié)簡(jiǎn)化用戶(hù)的使用易于軟件的更新 修訂 維護(hù) 可以修改內(nèi)部實(shí)現(xiàn) 但不影響用戶(hù)的使用 訪問(wèn)修飾符 使用訪問(wèn)修飾符 可以定義應(yīng)用程序中類(lèi)成員的作用域 可見(jiàn)性 屬性4 1 3 屬性是 聰明 的字段 特殊 的方法定義屬性類(lèi)似于定義一個(gè)方法 但使用屬性時(shí)如同使用一個(gè)字段 classCat publicstringname publicintage staticvoidMain Catcat1 newCat cat1 age 13 錯(cuò)誤 創(chuàng)建屬性4 1 3 語(yǔ)法 public protected數(shù)據(jù)類(lèi)型屬性名 get get訪問(wèn)器 獲取屬性的代碼 set set訪問(wèn)器 設(shè)置屬性的代碼 創(chuàng)建屬性4 1 3 示例 publicclassCat privateintage publicintAge get returnage set if value 20 報(bào)告出錯(cuò)elseage value 使用屬性4 1 3 示例 Catcat1 newCat cat1 Age 1 使用Age屬性的set訪問(wèn)器intn Cat Age 使用Age屬性的get訪問(wèn)器cat1 Age 100 收到錯(cuò)誤消息 屬性4 1 3 如果只提供了get 沒(méi)有set 這樣的屬性為只讀屬性如果只提供了set 沒(méi)有g(shù)et 只寫(xiě)屬性?xún)?yōu)點(diǎn) 屬性在使用時(shí)類(lèi)似于類(lèi)的字段 簡(jiǎn)單屬性在實(shí)現(xiàn)時(shí)類(lèi)似于方法 可以編寫(xiě)代碼控制用戶(hù)對(duì)數(shù)據(jù)的存 取 增加安全性檢查可以設(shè)置只讀或只寫(xiě)屬性 練習(xí) 參見(jiàn)教材P101頁(yè)4 1 4課堂練習(xí) 10分鐘 編寫(xiě)和使用屬性4 1 4 面向?qū)ο蟮木幊碳夹g(shù) 內(nèi)容 設(shè)計(jì)對(duì)象繼承性多態(tài)性 C 繼承性4 2 定義基類(lèi)創(chuàng)建派生類(lèi)創(chuàng)建密封類(lèi) 繼承4 2 1 A isakindof B 貓是一只動(dòng)物 阿土仔是一個(gè)人 A isakindof B 說(shuō)明B是A的一個(gè)父類(lèi) A是B的子類(lèi) 基類(lèi) 派生類(lèi) 子類(lèi)無(wú)條件的接收父類(lèi)具有的特性 包括屬性和方法 這就叫做繼承繼承允許把公共的屬性和方法包含在基類(lèi)中得到重用 此外 子類(lèi)還可以添加自己的特性利用繼承 可以以現(xiàn)有的類(lèi)為基礎(chǔ) 創(chuàng)建出新的類(lèi) 實(shí)現(xiàn)了代碼的重用 繼承4 2 1 繼承描述了 是什么種類(lèi) isakindof 的關(guān)系派生類(lèi)從基類(lèi)繼承屬性和方法 實(shí)現(xiàn)了代碼重用派生類(lèi)變得更專(zhuān)門(mén)化在C 中只支持單一繼承 即每個(gè)子類(lèi)只能有一個(gè)父類(lèi) 父類(lèi) 子類(lèi) 動(dòng)物 派生類(lèi)4 2 2 示例 動(dòng)物園需要管理3種動(dòng)物 羚羊 獅子 大象 publicclassAntelope publicboolIsSleeping publicvoidSleep publicvoidEat publicclassLion publicboolIsSleeping publicvoidSleep publicvoidEat publicvoidStalkPrey publicclassElephant publicboolIsSleeping publicvoidSleep publicvoidEat publicintCarrayCapacity publicclassAnimal publicboolIsSleeping publicvoidSleep publicvoidEat publicclassAntelope Animal publicclassLion Animal publicvoidStalkPrey publicclassElephant Animal publicintCarrayCapacity 派生類(lèi)4 2 2 示例 publicclassAnimal protectedboolIsSleeping publicvoidSleep publicvoidEat publicclassLion Animal publicvoidStalkPrey LionadoptedLion newLion adoptedLion StalkPrey adoptedLion Eat base關(guān)鍵字4 2 3 base指代一個(gè)對(duì)象的父類(lèi) 基類(lèi)當(dāng)子類(lèi)中的成員與父類(lèi)成員重名是 父類(lèi)的成員被隱藏base的作用 點(diǎn)取父類(lèi)中被子類(lèi)隱藏了的成員變量點(diǎn)取被子類(lèi)覆蓋了的方法作為方法名表示父類(lèi)的構(gòu)造函數(shù) publicAnimal publicvoidmethod1 publicclassLion Animal 將父類(lèi)的同名方法隱藏publicvoidmethod1 publicLion this method1 base method1 密封類(lèi)4 2 4 使用sealed關(guān)鍵字聲明密封類(lèi)密封類(lèi)不允許其他類(lèi)繼承該類(lèi)密封的方法不允許被覆蓋如果你的類(lèi)不希望被別人繼承 修改 為安全起見(jiàn) 把它們定義為sealed吧 publicsealedclassMyClass classmembers 練習(xí) 參見(jiàn)教材P108頁(yè)4 2 5課堂練習(xí) 10分鐘 創(chuàng)建派生類(lèi)4 2 5 面向?qū)ο蟮木幊碳夹g(shù) 內(nèi)容 設(shè)計(jì)對(duì)象繼承性多態(tài)性 C 多態(tài)4 3 通過(guò)在基類(lèi)中使用虛方法來(lái)實(shí)現(xiàn)多態(tài)性創(chuàng)建和使用抽象類(lèi) 多態(tài)性4 3 1 具有多種不同的形態(tài) 這種能力稱(chēng)為多態(tài)性子類(lèi)繼承了父類(lèi)的特性 但子類(lèi)在某些細(xì)節(jié)上各不相同 多種多樣 如何做到這一點(diǎn)呢 Animal對(duì)象 Elephant Cat Mouse 行為 EatGrass EatMouse EatCheese 被調(diào)用的方法 Eat Eat Eat 編寫(xiě)虛方法4 3 2 如果希望某個(gè)方法的實(shí)現(xiàn)能夠在子類(lèi)中進(jìn)一步得到改進(jìn) 那么將方法定義為虛方法使用virtual關(guān)鍵字定義虛方法這樣子類(lèi)就可以改進(jìn)從父類(lèi)繼承下來(lái)的Eat方法了 publicclassAnimal publicvirtualvoidEat Console WriteLine Eatsomething 編寫(xiě)虛方法4 3 2 如果希望改進(jìn)父類(lèi)的某個(gè)虛方法 使用override關(guān)鍵字覆蓋父類(lèi)的方法 提供自己的實(shí)現(xiàn)就可以了當(dāng)覆蓋虛方法時(shí) 覆蓋的方法必須與被覆蓋的方法具有相同的方法簽名這樣子類(lèi)就可以有與眾不同的Eat方法了 publicclassCat Animal publicoverridevoidEat Console WriteLine Eatmouse 虛方法的調(diào)用4 3 2 當(dāng)調(diào)用某個(gè)虛方法時(shí) 運(yùn)行時(shí)會(huì)根據(jù)具體對(duì)象的類(lèi)型 動(dòng)態(tài)決定調(diào)用哪個(gè)方法 publicclassAnimal publicvirtualvoidEat Console WriteLine Eatsomething publicclassCat Animal publicoverridevoidEat Console WriteLine Eatmouse AnimalmyCat newCat myCat Eat 輸出 Eatmouse 多態(tài)的實(shí)現(xiàn)4 3 2 動(dòng)物飼養(yǎng)員publicclassAnimalTrainer publicvoidFeedAnimal Animala a Eat staticvoidMain ElephantmyElephant newElephant CatmyCat newCat MousemyMouse newMouse AnimalTrainermarry newAnimalTrainer marry FeedAnimal myElephant EatGrassmarry FeedAnimal myCat EatMousemarry FeedAnimal myMouse EatCheese 抽象方法只有方法聲明 但沒(méi)有方法實(shí)現(xiàn) 是一個(gè)空方法抽象的方法隱式為虛方法 必須被覆蓋抽象類(lèi) 包含了抽象方法的類(lèi)必須聲明為抽象類(lèi)只能被繼承 但不能創(chuàng)建一個(gè)抽象類(lèi)的對(duì)象實(shí)例使用abstract關(guān)鍵字定義抽象類(lèi)和抽象方法如果你的某個(gè)類(lèi)的方法不知道該如何實(shí)現(xiàn) 實(shí)現(xiàn)的細(xì)節(jié)是由子類(lèi)決定的 那么把它定義成abstract吧 抽象方法和抽象類(lèi)4 3 3 classShape publicstringname publicdoubleGetArea 抽象方法和抽象類(lèi)4 3 3 思考題 為什么使用抽象方法定義一個(gè)shape類(lèi) 表示各種幾何圖形 方法getArea 用來(lái)計(jì)算圖形的面積 該如何實(shí)現(xiàn)這個(gè)方法呢 三角形 正方形 圓形 不同的幾何圖形面積的計(jì)算公式不同 顯然在這里沒(méi)法實(shí)現(xiàn) class圓形 Shape publicoverridedoubleGetArea area R2 class三角形 Shape publicoverridedoubleGetArea area 底 高 2 abstractclassShape publicabstractdoubleGetArea 沒(méi)有方法體 抽象方法和抽象類(lèi)4 3 3 解決辦法 定義為abstract 讓各個(gè)子類(lèi)自己去實(shí)現(xiàn)吧 練習(xí) 參見(jiàn)教材P115頁(yè)4 3 4課堂練習(xí) 10分鐘 使用多態(tài)性4 3 4 面向?qū)ο缶幊虄?yōu)點(diǎn)4 1 1 簡(jiǎn)易性對(duì)象反映了現(xiàn)實(shí)世界的元素 使程序更容易設(shè)計(jì)封裝性隱藏了重要的數(shù)據(jù)和實(shí)現(xiàn)細(xì)節(jié) 易于代碼維護(hù) 更安全繼承性實(shí)現(xiàn)了
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- DB31/T 1229-2020安全防范工程視頻監(jiān)控系統(tǒng)現(xiàn)場(chǎng)清晰度要求
- 2025電子產(chǎn)品銷(xiāo)售合同參考范本
- 貴金屬礦床的礦業(yè)文化傳承與旅游開(kāi)發(fā)考核試卷
- 谷物儲(chǔ)存設(shè)施設(shè)計(jì)與施工考核試卷
- 2024年金剛石膜工具資金籌措計(jì)劃書(shū)代可行性研究報(bào)告
- 抖音網(wǎng)紅賬號(hào)歸屬與商業(yè)合作服務(wù)合同
- 教師專(zhuān)業(yè)發(fā)展及薪酬激勵(lì)協(xié)議
- 2025年中國(guó)鉍及鉍制品行業(yè)市場(chǎng)前景預(yù)測(cè)及投資價(jià)值評(píng)估分析報(bào)告
- 離婚協(xié)議書(shū)多語(yǔ)種翻譯及法律適用性評(píng)估合同
- 精準(zhǔn)經(jīng)濟(jì)適用房回購(gòu)權(quán)調(diào)整合同
- 像冠軍一樣教學(xué)讀后感3實(shí)用
- 電力安全生產(chǎn)事故調(diào)查規(guī)程
- GB/T 18781-2023珍珠分級(jí)
- GA/T 544-2021多道心理測(cè)試系統(tǒng)通用技術(shù)規(guī)范
- 腰椎間盤(pán)突出癥的針刀治療課件
- 《法理學(xué)》考試筆記與重點(diǎn)
- DB44!T+2419-2023全生曬柑普茶生產(chǎn)技術(shù)規(guī)程
- (52)-皰疹性咽峽炎小兒推拿探秘
- GMP體系文件(手冊(cè)+程序)
- 柴油叉車(chē)日常點(diǎn)檢表
- 物流成本管理-日日順d2d物流成本分析
評(píng)論
0/150
提交評(píng)論