資源描述:
《類的封裝繼承和多態(tài).ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第3章類的封裝、繼承和多態(tài)3.1類和對(duì)象3.2類的封裝性3.3類的繼承性3.4類的多態(tài)性3.5類的抽象性《Java程序設(shè)計(jì)實(shí)用教程(第3版)》在面向?qū)ο蟾拍钪?,類是?shù)據(jù)和對(duì)數(shù)據(jù)操作的封裝體。類具有封裝性、繼承性和多態(tài)性。封裝性是面向?qū)ο蠓椒ǖ幕A(chǔ).繼承性是面向?qū)ο蠓椒ǖ募夹g(shù)關(guān)鍵多態(tài)性提供了面向?qū)ο蠓椒ㄔO(shè)計(jì)的靈活性。這三個(gè)面向?qū)ο蟮暮诵奶匦詾閼?yīng)用程序構(gòu)建可重用軟件系統(tǒng)奠定了基礎(chǔ)?!禞ava程序設(shè)計(jì)實(shí)用教程(第3版)》3.1.1類類是既包括數(shù)據(jù)又包括作用于數(shù)據(jù)的一組操作的封裝體。類中的數(shù)據(jù)稱為成員變量,類中對(duì)數(shù)據(jù)的操作稱為成員方法。類具有封裝性、繼承性
2、、多態(tài)性和抽象性?!禞ava程序設(shè)計(jì)實(shí)用教程(第3版)》3.1.1類聲明類類聲明{成員變量的聲明;成員方法的聲明及實(shí)現(xiàn);}[修飾符]class類<泛型>[extends父類][implements接口列表]《Java程序設(shè)計(jì)實(shí)用教程(第3版)》3.1.1類聲明成員變量和成員方法成員變量[修飾符][static][final][transient]數(shù)據(jù)類型變量;關(guān)鍵字static用于聲明類成員變量,final用于聲明常量,transient用于聲明臨時(shí)變量。成員方法[修飾符]返回值類型方法([參數(shù)列表])[throws異常類]{語句序列;[retur
3、n[返回值]];}成員方法重載《Java程序設(shè)計(jì)實(shí)用教程(第3版)》3.1.2對(duì)象對(duì)象是類的實(shí)例。對(duì)象能獲取并保存類的一個(gè)實(shí)例。對(duì)象是動(dòng)態(tài)的,每個(gè)對(duì)象都有自己的生存周期,都會(huì)經(jīng)歷一個(gè)從創(chuàng)建、運(yùn)行到消亡的變化過程?!禞ava程序設(shè)計(jì)實(shí)用教程(第3版)》3.1.2對(duì)象聲明對(duì)象類對(duì)象創(chuàng)建實(shí)例對(duì)象=new類的構(gòu)造方法([參數(shù)列表])注意:類的構(gòu)造方法是類中與類同名的特殊成員方法,用于創(chuàng)建類的實(shí)例并初始化對(duì)象。每個(gè)類都有構(gòu)造方法,若類沒有聲明構(gòu)造方法,則Java會(huì)自動(dòng)為該類生成一個(gè)無參數(shù)的構(gòu)造方法?!禞ava程序設(shè)計(jì)實(shí)用教程(第3版)》3.1.2對(duì)象引用對(duì)象
4、的成員變量和調(diào)用對(duì)象方法對(duì)象.成員變量對(duì)象.成員方法([參數(shù)列表])Java語言自動(dòng)釋放對(duì)象?!纠?.1】聲明日期類及使用日期對(duì)象。對(duì)象與基本數(shù)據(jù)類型變量有一點(diǎn)重要的不同之處,就是對(duì)象能夠調(diào)用方法,而變量不能。《Java程序設(shè)計(jì)實(shí)用教程(第3版)》4.對(duì)象的引用模型《Java程序設(shè)計(jì)實(shí)用教程(第3版)》5.對(duì)象的關(guān)系運(yùn)算與比較相等《Java程序設(shè)計(jì)實(shí)用教程(第3版)》3.2類的封裝性封裝性是面向?qū)ο蟮暮诵奶卣髦?,它提供一種信息隱藏技術(shù)。類的封裝性包含兩層含義:一是將數(shù)據(jù)和對(duì)數(shù)據(jù)的操作組合起來構(gòu)成類,類是一個(gè)不可分割的獨(dú)立單位。(實(shí)現(xiàn)軟件模塊化設(shè)計(jì)
5、)二是實(shí)現(xiàn)信息隱藏,類要提供與外部聯(lián)系的方法,同時(shí)又要盡可能隱藏類的實(shí)現(xiàn)細(xì)節(jié)。(實(shí)現(xiàn)設(shè)計(jì)和使用分離)《Java程序設(shè)計(jì)實(shí)用教程(第3版)》3.2類的封裝性3.2.1構(gòu)造方法3.2.2this引用和instanceof對(duì)象運(yùn)算符3.2.3訪問控制3.2.4靜態(tài)成員3.2.5析構(gòu)方法3.2.6淺拷貝與深拷貝《Java程序設(shè)計(jì)實(shí)用教程(第3版)》3.2.1構(gòu)造方法聲明及調(diào)用構(gòu)造方法publicclassMyDate{publicMyDate(inty,intm,intd)//聲明構(gòu)造方法{//構(gòu)造方法與類同名year=y;month=m;day=d;}}
6、MyDated=newMyDate(2009,7,18);//構(gòu)造方法返回該類的一個(gè)實(shí)例默認(rèn)構(gòu)造方法publicMyDate()《Java程序設(shè)計(jì)實(shí)用教程(第3版)》3.拷貝構(gòu)造方法(參數(shù)是該類對(duì)象)publicMyDate(MyDated){year=d.year;month=d.month;day=d.day;}調(diào)用語句如下:MyDated1=newMyDate(2009,7,16);MyDated2=newMyDate(d1);第2句功能相當(dāng)于以下兩句:MyDated2=newMyDate();d2.set(d1);《Java程序設(shè)計(jì)實(shí)用教程
7、(第3版)》4.構(gòu)造方法重載publicMyDate(inty,intm,intd)publicMyDate()publicMyDate(MyDated)《Java程序設(shè)計(jì)實(shí)用教程(第3版)》3.2.3this引用和instanceof對(duì)象運(yùn)算符this引用指代對(duì)象本身this訪問本類的成員變量和成員方法this.成員變量(局部變量或形參與成員變量同名時(shí),必須用this引用成員變量)this.成員方法([參數(shù)列表])調(diào)用本類重載的構(gòu)造方法this([參數(shù)列表])(構(gòu)造方法中this必須是首句)instanceof對(duì)象運(yùn)算符dinstanceofMy
8、Date//運(yùn)算結(jié)果是boolean型《Java程序設(shè)計(jì)實(shí)用教程(第3版)》類的訪問權(quán)限:只有public和缺省兩種。pu