java課件01語言基礎(chǔ)_第1頁
java課件01語言基礎(chǔ)_第2頁
java課件01語言基礎(chǔ)_第3頁
java課件01語言基礎(chǔ)_第4頁
java課件01語言基礎(chǔ)_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論