第5章對(duì)象與類_第1頁(yè)
第5章對(duì)象與類_第2頁(yè)
第5章對(duì)象與類_第3頁(yè)
第5章對(duì)象與類_第4頁(yè)
第5章對(duì)象與類_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2023/1/111Java程序設(shè)計(jì)及應(yīng)用開(kāi)發(fā)教程主編:虞益誠(chéng)E-mail:yuyich@教學(xué)課件Java程序設(shè)計(jì)及應(yīng)用開(kāi)發(fā)教程構(gòu)架Java語(yǔ)言以其面向?qū)ο笮?、可重用性、平臺(tái)無(wú)關(guān)性、多線程、安全可靠等特性成為網(wǎng)絡(luò)程序設(shè)計(jì)中的佼佼者,受到廣泛的青睞三大模塊Java概述與語(yǔ)言基礎(chǔ)Java異常處理圖形用戶界面編程Java線程機(jī)制與AppletJavaJava應(yīng)用開(kāi)發(fā)與課程設(shè)計(jì)實(shí)例教參Java流程控制及數(shù)組與字符串高級(jí)GUI設(shè)計(jì)技術(shù)輸入輸出流Java網(wǎng)絡(luò)編程基礎(chǔ)Java數(shù)據(jù)庫(kù)連接第13-15

應(yīng)用開(kāi)發(fā)篇

第1-6

章基礎(chǔ)知識(shí)篇

第7-12章程序設(shè)計(jì)篇

面向?qū)ο蟪绦蛟O(shè)計(jì)和繼承與多態(tài)2023/1/11第5章對(duì)象與類3第5章對(duì)象與類5.1面向?qū)ο蠡A(chǔ)5.2類5.3成員變量5.4方法5.5實(shí)例對(duì)象5.6類的應(yīng)用實(shí)例 本章本章主要講述了對(duì)象及其特點(diǎn)、面向?qū)ο筌浖拈_(kāi)發(fā)過(guò)程、類的定義與構(gòu)成,同時(shí)介紹了方法、對(duì)象與構(gòu)造方法、類的成員變量等。2023/1/11第5章對(duì)象與類45.1面向?qū)ο蠡A(chǔ)5.1.1

面向?qū)ο蟾攀鰧?duì)象及其特點(diǎn)

對(duì)象(Object)是世界萬(wàn)物在人腦中的映像,是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位,。對(duì)象特點(diǎn):對(duì)象的狀態(tài)屬性、對(duì)象的行為操作、某類事物的抽象、對(duì)象間的關(guān)聯(lián)和作用。面向?qū)ο蠓椒?.1.2

面向?qū)ο筌浖拈_(kāi)發(fā)過(guò)程面向?qū)ο蠓椒ǖ某绦蜷_(kāi)發(fā)過(guò)程可以大體劃分為面向?qū)ο蟮姆治觯∣bjectOrientedAnalysis,OOA)、面向?qū)ο蟮脑O(shè)計(jì)(ObjectOrientedDesign,OOD)、面向?qū)ο蟮膶?shí)現(xiàn)(ObjectOrientedProgramming,OOP)三個(gè)階段。1.面向?qū)ο蟮姆治雒嫦驅(qū)ο蟮姆治龅闹饕饔檬敲鞔_用戶的需求,并用標(biāo)準(zhǔn)化的面向?qū)ο蟮哪P鸵?guī)范地表述這一需求,最后將形成面向?qū)ο蟮姆治瞿P?,即OOA模型。2023/1/11第5章對(duì)象與類55.1面向?qū)ο蠡A(chǔ)2.面向?qū)ο蟮脑O(shè)計(jì)如果說(shuō)分析階段應(yīng)該明確所要開(kāi)發(fā)的軟件系統(tǒng)“干什么”,那么設(shè)計(jì)階段將明確這個(gè)軟件系統(tǒng)“怎么做”。面向?qū)ο蟮脑O(shè)計(jì)將對(duì)OOA模型加以擴(kuò)展并得到面向?qū)ο蟮脑O(shè)計(jì)階段的最終結(jié)果:OOD模型。面向?qū)ο蟮脑O(shè)計(jì)將在OOA模型的基礎(chǔ)上引入界面管理、任務(wù)管理和數(shù)據(jù)管理三部分的內(nèi)容,進(jìn)一步擴(kuò)充OOA模型。3.面向?qū)ο蟮膶?shí)現(xiàn)面向?qū)ο蟮膶?shí)現(xiàn)就是具體的程序編碼階段,其主要任務(wù)包括:選擇一種合適的面向?qū)ο蟮木幊陶Z(yǔ)言,如C++、Java等。用選定的語(yǔ)言編碼實(shí)現(xiàn)詳細(xì)設(shè)計(jì)步驟所得的公式、圖表、說(shuō)明和規(guī)則等對(duì)軟件系統(tǒng)各對(duì)象類的詳盡描述。將編寫(xiě)好的各個(gè)類代碼模塊根據(jù)類的相互關(guān)系集成。利用開(kāi)發(fā)人員提供的測(cè)試樣例和用戶提供的測(cè)試樣例分別檢驗(yàn)編碼完成的各個(gè)模塊和整個(gè)軟件系統(tǒng)。實(shí)現(xiàn)、編程階段完成后,即可步入運(yùn)行了。

5.1.3

面向?qū)ο蟪绦蛟O(shè)計(jì)方法的優(yōu)點(diǎn)2023/1/11第5章對(duì)象與類65.1面向?qū)ο蠡A(chǔ)0面向?qū)ο蠓椒ǖ奶匦蕴匦灾饕ǎ撼橄笮?、封裝性、繼承性與多態(tài)性。面向?qū)ο蟪绦蛟O(shè)計(jì)方法優(yōu)點(diǎn)可重用性.可擴(kuò)展性.可管理性.可自律性.可分離性.接口和消息機(jī)制。5.2類5.2.1

類的概念

類及其與對(duì)象的關(guān)系

類是對(duì)該類對(duì)象的抽象描述,是一種復(fù)雜的數(shù)據(jù)類型,它是將數(shù)據(jù)屬性及其相關(guān)操作封裝在一起的集合體,包括了對(duì)象的屬性與方法或特征與行為,它是對(duì)象(事物)的模板或藍(lán)圖。類是對(duì)一類對(duì)象的抽象描述,對(duì)象是類的實(shí)例化。

2023/1/11第5章對(duì)象與類75.1面向?qū)ο蠡A(chǔ)0面向?qū)ο蠓椒ǖ奶匦蕴匦灾饕ǎ撼橄笮浴⒎庋b性、繼承性與多態(tài)性。面向?qū)ο蟪绦蛟O(shè)計(jì)方法優(yōu)點(diǎn)可重用性.可擴(kuò)展性.可管理性.可自律性.可分離性.接口和消息機(jī)制。5.2類5.2.1

類的概念

類及其與對(duì)象的關(guān)系

類是對(duì)該類對(duì)象的抽象描述,是一種復(fù)雜的數(shù)據(jù)類型,它是將數(shù)據(jù)屬性及其相關(guān)操作封裝在一起的集合體,包括了對(duì)象的屬性與方法或特征與行為,它是對(duì)象(事物)的模板或藍(lán)圖。類是對(duì)一類對(duì)象的抽象描述,對(duì)象是類的實(shí)例化。

2023/1/11第5章對(duì)象與類85.2類5.2.2類的定義修飾符class類名[extends父類名][implements接口名]{

類體內(nèi)容 }說(shuō)明:(1)其中修飾符用來(lái)說(shuō)明類的屬性。(2)class是關(guān)鍵字,用來(lái)定義類。(3)extends關(guān)鍵字用來(lái)指明該類的父類,class類名是子類(4)implements關(guān)鍵字用來(lái)引出接口,以供本類中使用類體構(gòu)成類體內(nèi)容是java的主體部分,用以完成變量的說(shuō)明以及方法的定義與實(shí)現(xiàn)。類體通常由變量和方法兩部分組成,變量描述該類對(duì)象的屬性,說(shuō)明對(duì)象所處的狀態(tài);方法描述該類對(duì)象的行為或功能。2023/1/11第5章對(duì)象與類95.2類類體構(gòu)成及類的詳細(xì)描述類體結(jié)構(gòu)定義如下:

class類名

{//兩括號(hào)間為類主體

<成員變量的聲明> <成員方法聲明及實(shí)現(xiàn)> }

整個(gè)類的詳細(xì)結(jié)構(gòu)定義如下:修飾符class類名[extends父類名][implements接口名]{

修飾符類型成員變量[=初值];//成員變量序列

修飾符類型成員方法[(參數(shù)列表)//方法體

{

類型局部變量[=初值];//變量序列 語(yǔ)句序列;

}…}

【例4-1】根據(jù)笛卡兒坐標(biāo)中點(diǎn)的相應(yīng)位置,創(chuàng)建一個(gè)Cpoint類。

2023/1/11第5章對(duì)象與類105.3成員變量類的成員變量是指在位于類的內(nèi)部和方法定義外部所定義的變量,其作用域是整個(gè)類,即同一類中的所有方法都可以對(duì)它通過(guò)名字進(jìn)行訪問(wèn)。方法體定義的變量則稱方法變量,它的作用域僅限于方法體內(nèi)。

類成員變量定義格式格式為:

[修飾符]類型變量列表【語(yǔ)法說(shuō)明】(1)修飾符為可選項(xiàng),可以是public、protected、private、static、final、transient、volatile等,用以說(shuō)明成員變量的訪問(wèn)權(quán)限。(2)類型可以是java中任一合法的數(shù)據(jù)類型。(3)變量列表是一組用“,”隔開(kāi)的顯式定義的變量名。

【例4-15】使用static修飾符創(chuàng)建一個(gè)學(xué)生檔案信息。

classE_final{publicstaticvoidmain(Stringargs[]){System.out.println(Tom.MIN);Tomtom=newTom();intx=0;x=tom.MIN+tom.MAX;System.out.println(x);}}classTom{finalintMAX=70;staticfinalintMIN=30;}

5.6復(fù)合數(shù)據(jù)類型數(shù)組

本章結(jié)束?。?023/1/11第5章對(duì)象與類115.4方法5.4.1方法聲明方法聲明方法是類的主要組成部分,程序的作用體現(xiàn)在附有名字的子程序即方法中。一個(gè)類由一個(gè)主方法和若干個(gè)子方法構(gòu)成。類的方法又稱成員方法規(guī)范說(shuō)明P100常用方法:部分常見(jiàn)方法如表4-1所示【例4-3】5.4.2方法調(diào)用方法的調(diào)用即該方法的調(diào)用運(yùn)行。例如isPfime();【例4-4】調(diào)用業(yè)已定義的方法Scircle,Area,計(jì)算面積。5.4.3參數(shù)傳遞

參數(shù)傳遞方式有傳值與傳地址兩種。若方法的參數(shù)為簡(jiǎn)單數(shù)據(jù)類型,則傳值,即將實(shí)參的值傳遞給形參若方法的參數(shù)為復(fù)合數(shù)據(jù)類型(對(duì)象),則傳地址,即將實(shí)參的地址傳遞給形參?!纠?-8】參數(shù)傳遞與變化?!纠?-9】不同類間的參數(shù)傳遞。5.4.4構(gòu)造方法

2023/1/11第5章對(duì)象與類125.4方法5.4.4構(gòu)造方法

構(gòu)造方法,即類的同名方法泛稱為構(gòu)造方法。特點(diǎn):(1)構(gòu)造方法是一種特殊的方法,它的名字必須與它所在的類的名字完全相同,且不返回任何數(shù)據(jù)類型,即它是省略void關(guān)鍵字的void型,構(gòu)造方法允許多態(tài)性。(2)類一般都有構(gòu)造方法,若無(wú)系統(tǒng)則自動(dòng)添加無(wú)參構(gòu)造方法,系統(tǒng)自動(dòng)地將所有的實(shí)例變量初始化為零。接口不允許被實(shí)例化,所以接口中沒(méi)有構(gòu)造方法。(3)重載經(jīng)常用于構(gòu)造方法。構(gòu)造方法可以繼承,即子類可以繼承父類的構(gòu)造方法。5.44遞歸遞歸系指用自身結(jié)構(gòu)來(lái)循環(huán)調(diào)用自己。【例4-10】采用遞歸算法求n!(n=10)2023/1/11第5章對(duì)象與類135.5對(duì)象5.5.1對(duì)象的創(chuàng)建在Java語(yǔ)言里用new關(guān)鍵字來(lái)創(chuàng)建對(duì)象,其語(yǔ)法格式為:兩句語(yǔ)句直接完成:類名

對(duì)象名;對(duì)象名=new類名([參數(shù)列表]);

或可一句語(yǔ)句直接完成:類名

對(duì)象名=new類名([參數(shù)表]);使用new后,java實(shí)際上完成了如下操作:(1)在指定類上創(chuàng)建了一個(gè)對(duì)象;(2)為該對(duì)象分配了引用內(nèi)存空間(類似于數(shù)組分配內(nèi)存空間);(3)執(zhí)行由指定類所定義的構(gòu)造方法完成一系列初始化工作。

例如,系統(tǒng)已創(chuàng)建了Person類,利用它可生成兩個(gè)對(duì)象Mali和John:PersonMali; \\Mali對(duì)象兩句語(yǔ)句完成Mali=newPerson();PersonJohn=newPerson(); \\John對(duì)象一句語(yǔ)句完成

2023/1/11第5章對(duì)象與類145.4對(duì)象5.5.2對(duì)象的引用Java中,當(dāng)用類創(chuàng)建一個(gè)對(duì)象后,該對(duì)象就擁有了自己的成員變量和方法,對(duì)象通過(guò)使用這些方法可以產(chǎn)生一定的行為。即可以達(dá)到通過(guò)引用對(duì)象成員變量和方法的形式來(lái)引用對(duì)象。通過(guò)運(yùn)算符“.”可以實(shí)現(xiàn)對(duì)變量的訪問(wèn)和方法的調(diào)用。變量和方法可以通過(guò)設(shè)定訪問(wèn)權(quán)限來(lái)限制其它對(duì)象對(duì)它的訪問(wèn)。引用成員變量 引用對(duì)象的成員變量(1)對(duì)象名.成員變量名此方式使用于類對(duì)象已創(chuàng)建(PersonJohn=newPerson();已完成)。例如:J//引用John對(duì)象的成員變量name。又如:John.x=150;(2)new構(gòu)造方法名([參數(shù)列表]).成員變量名此方式適用于在創(chuàng)建對(duì)象與引用成員變量同時(shí)進(jìn)行的情形下。例如:在未執(zhí)行創(chuàng)建、初始化Person類對(duì)象時(shí),newPerson().name語(yǔ)句同時(shí)引用匿名對(duì)象的成員變量name。又如:tx=newPerson().x;。2023/1/11第5章對(duì)象與類155.4對(duì)象引用成員方法引用成員方法的方式有如下兩種:(1)對(duì)象名.方法名([參數(shù)列表])此式用于類對(duì)象已建(類Person與對(duì)象John已建,且包含pay(inta))。例如:John.pay(25)//引用John對(duì)象的成員方法pay()。又如:John.move(30,20);(2)new構(gòu)造方法名([參數(shù)列表]).方法名([參數(shù)列表])此方式適用于在創(chuàng)建對(duì)象與引用成員方法同時(shí)進(jìn)行的情形下。例如:在未執(zhí)行創(chuàng)建、初始化Person類對(duì)象時(shí),newPerson().pay()語(yǔ)句同時(shí)引用匿名對(duì)象的成員方法pay()。又如:newPoint().move(30,20);【例4-

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論