資源描述:
《面向?qū)ο蟮暮诵奶匦?ppt》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第3章面向?qū)ο蟮暮诵奶匦?.1類(lèi)和對(duì)象3.2類(lèi)的封裝性3.3類(lèi)的繼承性3.4類(lèi)的多態(tài)性3.5抽象類(lèi)和最終類(lèi)3.6遞歸方法《Java2程序設(shè)計(jì)實(shí)用教程(第2版)》3.1類(lèi)和對(duì)象3.1.1面向?qū)ο蠡靖拍?.1.2定義類(lèi)3.1.3使用對(duì)象《Java2程序設(shè)計(jì)實(shí)用教程(第2版)》3.1.1面向?qū)ο蠡靖拍铑?lèi)與對(duì)象類(lèi)(class)是既包括數(shù)據(jù)又包括作用于數(shù)據(jù)的一組操作的封裝體。對(duì)象(object)是類(lèi)的實(shí)例(instance)。類(lèi)的封裝性、繼承性和多態(tài)性類(lèi)的封裝性類(lèi)的繼承性類(lèi)的多態(tài)性《Java2程序設(shè)計(jì)實(shí)用教程(第2版)》3.1.2定義類(lèi)聲明類(lèi)類(lèi)聲明{成員變量的聲明;成員方法的聲明及實(shí)現(xiàn);}聲明成員
2、變量[修飾符]class類(lèi)<泛型>[extends父類(lèi)][implements接口列表]publicclassDate1//類(lèi)聲明{intyear,month,day;//聲明成員變量}《Java2程序設(shè)計(jì)實(shí)用教程(第2版)》3.1.2定義類(lèi)聲明成員方法方法聲明語(yǔ)法[修飾符]返回值類(lèi)型方法([參數(shù)列表])[throws異常類(lèi)]{語(yǔ)句序列;[return[返回值]];}方法體中的局部變量方法體中用return語(yǔ)句返回值聲明main方法publicstaticvoidmain(Stringargs[])【例3.1】聲明日期類(lèi)。《Java2程序設(shè)計(jì)實(shí)用教程(第2版)》3.1.3使用對(duì)象聲明對(duì)象類(lèi)對(duì)
3、象對(duì)象實(shí)例化對(duì)象=new類(lèi)的構(gòu)造方法([參數(shù)列表])Date1aday=newDate1();引用對(duì)象的成員變量和調(diào)用對(duì)象方法對(duì)象.成員變量對(duì)象.成員方法([參數(shù)列表])aday.year=2006;//引用對(duì)象的成員變量aday.setDate(2006,1,28);//調(diào)用對(duì)象的方法"abcd".equals("abc")《Java2程序設(shè)計(jì)實(shí)用教程(第2版)》3.1.3使用對(duì)象對(duì)象的引用模型《Java2程序設(shè)計(jì)實(shí)用教程(第2版)》3.1.3使用對(duì)象方法調(diào)用時(shí)的參數(shù)傳遞原則基本數(shù)據(jù)類(lèi)型參數(shù)傳遞值;引用數(shù)據(jù)類(lèi)型參數(shù)傳遞引用。釋放對(duì)象Java語(yǔ)言具有資源回收機(jī)制,能夠跟蹤存儲(chǔ)單元的使用情況,
4、自動(dòng)收回不再被使用的資源。【例3.2】引用數(shù)據(jù)類(lèi)型作為方法的參數(shù)和返回值。《Java2程序設(shè)計(jì)實(shí)用教程(第2版)》3.2類(lèi)的封裝性3.2.1構(gòu)造方法與析構(gòu)方法3.2.2方法的重載3.2.3this引用和instanceof對(duì)象運(yùn)算符3.2.4類(lèi)及其成員的訪(fǎng)問(wèn)權(quán)限3.2.5實(shí)例成員與類(lèi)成員《Java2程序設(shè)計(jì)實(shí)用教程(第2版)》3.2.1構(gòu)造方法與析構(gòu)方法構(gòu)造方法聲明構(gòu)造方法publicclassDate2{publicDate2(inty,intm,intd)//聲明構(gòu)造方法{//構(gòu)造方法與類(lèi)同名,構(gòu)造方法返回該類(lèi)的一個(gè)實(shí)例year=y;month=m;day=d;}}Date2aday=n
5、ewDate2(2006,1,28);關(guān)于構(gòu)造方法聲明和使用的幾點(diǎn)說(shuō)明構(gòu)造方法與成員方法的不同之處《Java2程序設(shè)計(jì)實(shí)用教程(第2版)》2.析構(gòu)方法publicvoidfinalize()//析構(gòu)方法{語(yǔ)句序列;}《Java2程序設(shè)計(jì)實(shí)用教程(第2版)》3.2.2方法的重載重載的含義Math.abs()方法聲明有4種:intabs(inta)longabs(longa)floatabs(floata)doubleabs(doublea)成員方法重載構(gòu)造方法重載Date2aday1=newDate2();Date2aday2=newDate2(2006,2,28);《Java2程序設(shè)計(jì)實(shí)用教
6、程(第2版)》圖3.2使用拷貝構(gòu)造方法復(fù)制對(duì)象Date2aday3=newDate2(aday2);//由已知對(duì)象創(chuàng)建新對(duì)象《Java2程序設(shè)計(jì)實(shí)用教程(第2版)》3.2.3this引用和instanceof對(duì)象運(yùn)算符this引用指代對(duì)象本身this訪(fǎng)問(wèn)本類(lèi)的成員變量和成員方法this.成員變量this.成員方法([參數(shù)列表])調(diào)用本類(lèi)重載的構(gòu)造方法this([參數(shù)列表])instanceof對(duì)象運(yùn)算符adayinstanceofDate2《Java2程序設(shè)計(jì)實(shí)用教程(第2版)》3.2.4類(lèi)及其成員的訪(fǎng)問(wèn)權(quán)限類(lèi)中成員的訪(fǎng)問(wèn)權(quán)限類(lèi)的訪(fǎng)問(wèn)權(quán)限:只有public和缺省兩種。publicclassD
7、ate1//公有的類(lèi)classDate1_ex//默認(rèn)的類(lèi)權(quán)限修飾符同一類(lèi)同一包不同包的子類(lèi)所有類(lèi)public(公有)????protected(保護(hù))???缺省??private(私有)?《Java2程序設(shè)計(jì)實(shí)用教程(第2版)》【例3.3】日期類(lèi)的封裝。設(shè)計(jì)并重載構(gòu)造方法成員變量設(shè)計(jì)為私有的訪(fǎng)問(wèn)權(quán)限,限制其他類(lèi)對(duì)成員變量的訪(fǎng)問(wèn)成員方法設(shè)計(jì)為公有的訪(fǎng)問(wèn)權(quán)限,提供給其他類(lèi)使用使用this引用增強(qiáng)程序的可維護(hù)性運(yùn)