




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
8/8第二部分類與對象一、本部分內(nèi)容教學(xué)目標(biāo)使學(xué)生理解面向?qū)ο蟪绦蛟O(shè)計(jì)思想;熟練掌握類的定義,域和方法的概念,構(gòu)造方法與對象的創(chuàng)建和使用;掌握對象的初始化順序;了解對象的清除與垃圾回收;掌握變量與變量的傳遞;掌握成員與類的訪問控制;掌握接口的定義、實(shí)現(xiàn)與應(yīng)用;掌握接口與抽象類的區(qū)別與聯(lián)系;掌握package與import,了解類路徑的設(shè)置方法;掌握繼承的概念和語法,域變量的隱藏和方法的覆蓋,構(gòu)造方法的重載和繼承及this與super的使用;掌握組合與多態(tài)的概念與應(yīng)用;理解四種內(nèi)部類的定義與使用。教學(xué)重點(diǎn)類、域和方法的定義方法;構(gòu)造方法、主方法及一般方法的區(qū)別;對象的創(chuàng)建、初始化順序;基本數(shù)據(jù)類型變量與引用數(shù)據(jù)類型變量的傳遞和返回;四種訪問控制符與三種常用非訪問控制符的使用;接口與抽象類的區(qū)別、定義及實(shí)現(xiàn);繼承、組合與多態(tài)的定義與使用;變量隱藏及方法覆蓋在存的區(qū)別及其在存儲方式上的差別。難點(diǎn)對面向?qū)ο蟪绦蛟O(shè)計(jì)思想的理解;從結(jié)構(gòu)式的程序設(shè)計(jì)向面向?qū)ο蟪绦蛟O(shè)計(jì)的過渡;對對象的初始化順序及構(gòu)造方法的調(diào)用的掌握;用匿名類來設(shè)計(jì)程序。二、教案示例1。面向過程與面向?qū)ο蟪绦驅(qū)嵗容^.1)以面向過程的程序設(shè)計(jì)方式思考:a、確定長方形周長和面積的算法。b、編寫兩個(gè)方法(函數(shù))分別計(jì)算長方形的周長和面積。c、求周長的方法(函數(shù))和求面積的方法(函數(shù))需要兩個(gè)參數(shù),分別是長方形的長和寬。程序示例1://面向過程求長方形周長與面積方法classRectangle1{?staticintperimeter(intlength,intwidth)?{ return2*(length+width); } staticintarea(intlength,intwidth)?{??returnlength*width;?}?publicstat(yī)icvoidmain(String[]args) { System.out.println(”perimeter=”+Rectangle1.perimeter(5,4));??System.out。println("area="+Rectangle1.area(5,4));?}}2)以面向?qū)ο蟮某绦蛟O(shè)計(jì)方式思考:a、一個(gè)長方形可以看成一個(gè)長方形對象.b、一個(gè)長方形對象有兩個(gè)狀態(tài)(長和寬)和兩個(gè)行為(求周長和求面積)。c、將所有長方形的共性抽取出來,設(shè)計(jì)一個(gè)長方形類.d、通過長方形對象的行為,就可以求出某個(gè)具體的長方形對象的周長和面積。程序示例2://面向?qū)ο笄箝L方形面積與周長方法classRectangle{?intlength,width; intperimeter() {? return2*(length+width); }?intarea(){??returnlength*width; }?publicstaticvoidmain(Stringargs[]){??Rectanglerect1=newRectangle();??rect1。length=50;??rect1.width=10; ?System.out。println(rect1。perimeter()); System.out。println(rect1.a(chǎn)rea()); }}2.類的定義與對象創(chuàng)建classCar{ Stringmodel; publicCar(){}?publicCar(Stringmodel){this.model=model;} voidprintModel(){??System.out.println(”Themodelofthiscaris"+model/*this。model*/);; } publicstaticvoidmain(Stringargs[]){??CarmyCar1=newCar(); ?CarmyCar2=newCar("BMW”); ?System。out。println(myCar1.model); ?myCar1.printModel(); }3.變量及其值傳遞classValueTransfer{ voidmodify(inti){ i++; }?voidmodify(int[]arr){? for(inti=0;i<arr.length;i++){ ? arr[i]=1;??} }??voidmodify(SimpleClasss){? s.field=1;?} publicstaticvoidmain(String[]args){??ValueTransferv=newValueTransfer();? intintValue=0; v。modify(intValue);??System。out。println(”intValue=”+intValue); ? ?int[]intArr=newint[1];??intArr[0]=100; ?v.modify(intArr); ?System.out。println("intArr[0]=”+intArr[0]); ?SimpleClasss=newSimpleClass(); ?v.modify(s); System.out.println("s.field="+s。field);?}}classSimpleClass{?intfield;}4.修飾符classCount{?privateintserial;?privatestaticintcounter=0;? Count(){ counter++; ?serial=counter;?} intgetserial(){ ?returnserial;?}}classStaticVar{stat(yī)icintx=100;}publicclassanli3_2{?publicstaticvoidmain(Stringargs[]){ ?Countc1=newCount(); ?Countc2=newCount(); ?System.out。println(c1.getserial());? System。out。println(c2.getserial()); System.out.println(StaticVar。x++); ?System.out。println(StaticVar。x++); }}5.接口與抽象類修改下列程序的錯(cuò)誤:interfaceA{ doublePI=3.1415926; voidmethod();}interfaceB{ doublePI=3.1415926; voidmethod();}classCimplementsA,B,A{}classErrorsimplementsC{?publicstaticvoidmain(String[]args){ System.out.println(PI); }?voidmethod(){? System.out。println("method()called");?}}6.繼承//方法的覆蓋和變量的隱藏classParent{ inti=1;?voida(){ ?System.out。println("###"); }}publicclasseg4extendsParent{?inti=100; voida(){ System。out.println("...");?} publicstaticvoidmain(Stringargs[]){??Parentaa=neweg4(); ?aa.a(chǎn)(); ?System。out.println(aa.i); }}/**構(gòu)造方法的重載和繼承*/classa{ a(){System.out。println("aaa”);}?a(inti){System.out.println("i="+i);}}classbextendsa{ b(){System。out.println("bbb”);}?b(inti){System.out。println("i="+i);} publicstat(yī)icvoidmain(Stringargs[])?{ bb1=newb(); }}7。繼承、組合與多態(tài)//繼承與組合實(shí)例classnumber{ int[]a={1,2,3,4,5}; intsum=0;?doubleaverage=0.0; publicintsum(){??for(inti=0;i〈a.length;i++){?? sum+=a[i];??} ?returnsum; } publicdoubleaverage(){? returnsum()/a。length;?}}classsonNumberextendsnumber{//?numbern=newnumber();?intcount=0; publicintsum(){ ?count++; returnsuper。sum();//n.sum(); }?publicdoubleaverage(){ ?count++;? returnsuper。average();//n.average();?}?publicintcount(){returncount;}?publicstaticvoidmain(Stringargs[]){? sonNumbers=newsonNumber();??System。out.println(s.count());??System。out.println(s。sum()); System.out.println(s.count());? System.out。println(s。average());?}}8。對象初始化順序//對象初始化順序classguest{?publicguest(){System。out.println("Hello!");}}classdad{?guestg=newguest();?publicdad(){System。out.println("Thisisdad。");} publicdad(Strings){System。out.println(s);}}classsonextendsdad{ dadd=newdad(”Thisisanti。");staticdadd1=newdad(”Thisisuncle.");publicson(){System。out.println(”ThisisTom。”);}publicstaticvoidmain(String[]args){ sons=newson();}}三、考核知識點(diǎn)類、域和方法的定義方法;構(gòu)造方法、主方法及一般方法的區(qū)別;對象的創(chuàng)建、初始化順序;基本數(shù)據(jù)類型變量與引用數(shù)據(jù)類型變量的傳遞和返回;四種訪問控制符與三種常用非訪問控制符的使用;接口與抽象類的區(qū)別、定義及實(shí)現(xiàn);繼承、組合與多態(tài)的定義與使用;變量隱藏及方法覆蓋在存的區(qū)別及其在存儲方式上的差別。四、課后練習(xí)與思考題1.類和對象的關(guān)系?2.==與equals()的區(qū)別?3.構(gòu)造方法的特征?4.什么叫方法重載?5.編寫一個(gè)userName類,包含兩個(gè)成員變量:firstname,lastname;并仿照TestPerson1類構(gòu)建兩個(gè)構(gòu)造器方法,一個(gè)是帶參數(shù),一個(gè)是不帶參數(shù)(將它們初始化為firstname,lastname);最后構(gòu)建一個(gè)fullName方法,用來返回全名。6。繼承的含義,java中可以實(shí)現(xiàn)多繼承嗎,可以實(shí)現(xiàn)多重繼承嗎?7。方法重寫和方法重載的區(qū)別?8.this關(guān)鍵字的作用?9。Static關(guān)鍵字可以用來修飾哪些成員。10.final關(guān)鍵字的作用?11.定義與實(shí)現(xiàn)接口的關(guān)鍵字分別是什么?12。接口能否繼承接口?接口能否實(shí)現(xiàn)接口?接口能否被實(shí)例化?13。Java允許多接口實(shí)現(xiàn)嗎?允許接口的多重繼承嗎?14.內(nèi)部類的特點(diǎn)是什么?15。公司給員工發(fā)工資,定義一個(gè)員工類,使用構(gòu)造方法的重載
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年六安貨運(yùn)從業(yè)資格證
- 2025年北海機(jī)動(dòng)車教練員從業(yè)資格證考試題庫
- 2025年上海客運(yùn)資格證模擬題庫及答案大全
- 2025年北京出租車考上崗證模擬試題
- 2025年駐馬店貨運(yùn)從業(yè)資格模擬考試題
- 機(jī)房裝修培訓(xùn)課件
- 單軌吊車培訓(xùn)課件
- 房產(chǎn)更名委托協(xié)議
- 卸船機(jī)論文題目及答案
- 小棕熊閱讀題目及答案
- 2025年中國orc低溫余熱發(fā)電系統(tǒng)行業(yè)分析及發(fā)展趨勢預(yù)測
- 中醫(yī)護(hù)理疑難病例討論
- 2025年江蘇啟東市勞務(wù)技術(shù)經(jīng)濟(jì)開發(fā)有限公司招聘筆試參考題庫含答案解析
- 房屋市政工程施工現(xiàn)場安全風(fēng)險(xiǎn)分級管控與防范措施清單
- 山西焦煤招聘筆試題庫2025
- DB50-T 1808-2025“一表通”智能報(bào)表市級業(yè)務(wù)數(shù)據(jù)規(guī)范
- 房屋市政工程生產(chǎn)安全重大事故隱患判定檢查表(2024版)
- 高企研發(fā)費(fèi)用培訓(xùn)
- 飼料公司銷售管理制度
- 物業(yè)維修電工培訓(xùn)內(nèi)容
- 廠房屋頂光伏項(xiàng)目可行性分析報(bào)告
評論
0/150
提交評論