版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第3
章面向?qū)ο蟪绦蛟O(shè)計(jì)及類的概念本章節(jié)授課目標(biāo)面向?qū)ο蟪绦蛟O(shè)計(jì)思想類的定義與使用入門23面向?qū)ο蟪绦蛟O(shè)計(jì)思想以程序員的角度觀察下面的畫面4傳統(tǒng)的編程語言如何處理游戲人物數(shù)據(jù)?以C語言為例,可以通過定義結(jié)構(gòu)來描述游戲人物數(shù)據(jù)游戲人物包含的屬性數(shù)據(jù):生命值、法力、攻擊力、防御力、武器屬性等游戲人物對應(yīng)的行為:攻擊,防御等。structchar{intlife;intmagic;intattack;intdefense;weaponwp;
};structweapon{…}缺點(diǎn):結(jié)構(gòu)只能描述屬性,不能描述動作。5對傳統(tǒng)的結(jié)構(gòu)進(jìn)行改造,增加執(zhí)行動作(函數(shù))的能力就很完美了。高級改進(jìn)版structchar{intlife;intmagic;intattack;intdefense;weaponwp;
functionvoidattackTo(){}functionvoidxxx(){}};structweapon{…}增加描述動作的能力這種新的數(shù)據(jù)類型就是“類”6面向?qū)ο蟮乃伎挤绞饺魏问挛锒伎梢园瑢傩裕部梢院袆幼?。任何事物都是對象,都可以理解為某種類型的實(shí)例。觀察教室里面的事物,描述該事物具有的屬性和可以做出的動作,思考如何在程序代碼中去定義和使用它們?7面向?qū)ο蟮乃伎挤绞絺鹘y(tǒng)編程語言的數(shù)據(jù)類型只能描述事物的屬性,如教師的體重、姓名、身高等面向?qū)ο缶幊陶Z言中把一切事物都看成一種數(shù)據(jù)類型(類)的實(shí)例,類中中可以包含屬性和動作兩種數(shù)據(jù)。8理解“類”與“實(shí)例”的關(guān)系面向?qū)ο缶幊讨械念惻c實(shí)例的關(guān)系類(class)是一種數(shù)據(jù)類型,是抽象的和不以實(shí)例形式存在的。實(shí)例對象(instance)是類型的實(shí)例,是真實(shí)存在的。一個類可以有多個不同的實(shí)例。國家{
國旗;
國土面積;
國花;
國歌;}中國{
五星紅旗;960萬平方公里;
牡丹;
義勇軍進(jìn)行曲;}…類實(shí)例9面向?qū)ο蟪绦蛟O(shè)計(jì)的特性10OOP(ObjectOrientedProgramming)面向?qū)ο蟪绦蛟O(shè)計(jì)OOP特性抽象性
提煉與業(yè)務(wù)相關(guān)的信息使用。
封裝性
把復(fù)雜的信息和操作隱藏在類(class)內(nèi)部,對外提供的使用方法很簡單。
例如:導(dǎo)彈發(fā)射程序內(nèi)部計(jì)算處理很復(fù)雜,對外提供的接口可能就是一個按鈕。11繼承性
后代程序代碼可以擁有祖先類具備的能力,可以通過繼承逐代增強(qiáng)類實(shí)例能力和減少重復(fù)代碼的編寫。
例如:動物類是祖先類,具有體重、體溫等屬性,哺乳動物就可以繼承動物類的特性。多態(tài)性祖先類具備的行為能力有可能在后代類中發(fā)生變化,即便祖先類相同,不同的后代類的程序行為也是可以各不相同的。
例如:動物基本都有進(jìn)食行為,但是不同子類的進(jìn)食行為各不相同。12面向?qū)ο缶幊趟枷胄〗Y(jié)面向?qū)ο缶幊趟枷胱詈诵牡睦砟睿阂磺薪允穷?。解決了傳統(tǒng)語言的數(shù)據(jù)類型只能定義屬性,無法描述行為的問題。程序中的絕大部分變量都是類實(shí)例,類實(shí)例中存貯著程序數(shù)據(jù),執(zhí)行著程序行為。面向?qū)ο缶幊趟枷氲奶匦跃褪谴蠹医?jīng)常提起的OOP三大支柱:封裝、繼承、多態(tài)。類(class)就是能描述屬性和動作的一種數(shù)據(jù)類型13類的定義與使用14面向?qū)ο蟪绦蛟O(shè)計(jì)與類之間的關(guān)系面向?qū)ο蟮乃枷胫幸磺惺挛锒际菍ο?,都屬于某一種類
面向?qū)ο蟪绦蛟O(shè)計(jì)思想(OOP)的三大支柱在類中都有體現(xiàn)
java中的一切都是類,可以定義從整數(shù)到飛機(jī)的任何一種數(shù)據(jù)類型和實(shí)例。java語言中的修飾符、繼承、類封裝、方法重寫等都是OOP思想的體現(xiàn)。15類代碼的組成結(jié)構(gòu)類里面包含的主要代碼分為兩類屬性(field)
方法(method)描述類型的屬性信息,如游戲人物類的生命值屬性描述類型的行為信息,如游戲人物類的攻擊、防御等動作類屬性方法static、final、private、protected、publicconstructor、static、final、private、protected、public、override、orverload16如何定義類類定義語法:示例:[修飾符]class類名[extends父類][implements接口]{}publicclassStudent
{publicStringstuName;publicintage;}17如何使用類“類”是抽象概念,不是實(shí)體,是數(shù)據(jù)類型,使用時(shí)需要“實(shí)例化”,即需要定義變量才可以使用。一般情況下需要實(shí)例化以后才可以使用類,使用”new”關(guān)鍵字來調(diào)用類的“構(gòu)造函數(shù)”來創(chuàng)建類的實(shí)例對象。Student就相當(dāng)于一種新創(chuàng)造出的數(shù)據(jù)類型一樣來定義變量,然后通過new加類名及構(gòu)造函數(shù)來創(chuàng)造類的一個新實(shí)例。publicclassStudent
{publicStringstuName;publicintage;}Student
zhangsan=newStudent();zhangsan.stuName=“張三”;zhangsan.age=20;18關(guān)鍵字new關(guān)鍵字new可用來創(chuàng)造出一個類的實(shí)例對象。語法:類名類實(shí)例變量名稱=new類名(構(gòu)造函數(shù)參數(shù));從內(nèi)存中圈定一塊空閑區(qū)域然后讓類實(shí)例變量指向該區(qū)域。變量19publicclassStudent
{publicStringstuName;publicintage;publicStudent(){age=20;}}構(gòu)造函數(shù)構(gòu)造函數(shù)(又名構(gòu)造方法、構(gòu)造器、constructor)在創(chuàng)建類的實(shí)例時(shí)執(zhí)行的函數(shù)。語法:class類名{[修飾符]類名(){}}無參構(gòu)造函數(shù),注意無返回值20亂了嗎?類是數(shù)據(jù)類型,定義類的過程就是創(chuàng)造新的數(shù)據(jù)類型的過程??梢酝ㄟ^new來創(chuàng)造出一個新的類實(shí)例,然后讓多個變量來指向它。就像創(chuàng)造出一個氣球,然后拴上N根繩子。類代碼里面負(fù)責(zé)定義屬性(field)和方法(method),然后在類實(shí)例變量中去使用,如學(xué)生類有姓名、年齡屬性,使用時(shí)是具體的實(shí)例學(xué)生張三去使用的。創(chuàng)造新的類實(shí)例的時(shí)候一定會調(diào)用類的構(gòu)造函數(shù),構(gòu)造函數(shù)就是一個沒有返回值的、和類同名的一個方法。21小結(jié)有問題嗎?22總結(jié)本章重點(diǎn)講解了:面向?qū)ο蟪绦蛟O(shè)計(jì)思想OOP的四大特性:抽象、封裝、
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個性化視頻制作委托合同書(2024年版)版B版
- 2025年環(huán)保型打印紙張品研發(fā)與認(rèn)證合同4篇
- 2025年度文化創(chuàng)意產(chǎn)業(yè)承包經(jīng)營合同賠償與創(chuàng)意成果轉(zhuǎn)化3篇
- 二零二五版房產(chǎn)維修基金管理合同3篇
- 2025年綠色建筑彩板房采購協(xié)議3篇
- 2025年度商業(yè)地產(chǎn)項(xiàng)目租賃協(xié)議范本4篇
- 二零二五年度美容師客戶滿意度調(diào)查與反饋協(xié)議4篇
- 2024年銷售合同風(fēng)險(xiǎn)評估3篇
- 2025版合伙企業(yè)個人退伙權(quán)益保障協(xié)議書3篇
- 2025年度數(shù)據(jù)中心基礎(chǔ)設(shè)施建設(shè)承包協(xié)議8篇
- 2025年度公務(wù)車輛私人使用管理與責(zé)任協(xié)議書3篇
- 售后工程師述職報(bào)告
- 綠化養(yǎng)護(hù)難點(diǎn)要點(diǎn)分析及技術(shù)措施
- 2024年河北省高考?xì)v史試卷(含答案解析)
- 車位款抵扣工程款合同
- 小學(xué)六年級數(shù)學(xué)奧數(shù)題100題附答案(完整版)
- 高中綜評項(xiàng)目活動設(shè)計(jì)范文
- 英漢互譯單詞練習(xí)打印紙
- 2023湖北武漢華中科技大學(xué)招聘實(shí)驗(yàn)技術(shù)人員24人筆試參考題庫(共500題)答案詳解版
- 一氯二氟甲烷安全技術(shù)說明書MSDS
- 物流簽收回執(zhí)單
評論
0/150
提交評論