資源描述:
《高級程序設計語言(Java版)5 Java高級特性.pptx》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、第5章高級特性目錄5.1類的封裝5.2類的繼承5.3類的多態(tài)5.4綜合實例5.5習題5.1類的封裝5.1.1封裝的基本概念隱藏的過程就是封裝。封裝性把對象的屬性和行為結合成一個獨立單位——類,并且要盡可能多盡可能好的隱藏對象的內部細節(jié),需要的只是提供外部接口(接口的概念在后續(xù)章節(jié)中會詳細講解)。封裝性是類能夠建立起嚴格的內部結構,對內部信息起到了保護作用,減少了外部的干擾和影響,有效保證了類自身的獨立性。Java語言中所提到的封裝性包含兩個方面的含義:對象的全部屬性和方法都結合在一起,形成一個不可分割的獨立單位;盡可能隱藏對象的內部結
2、構;【實例5-1】Employee.javaPublicclassEmployee{//private權限privateStringname;privatedoublesalary;privatestaticintcount;//public權限publicStringgetName(){returnname;}//public權限PublicvoidsetName(Stringname){this.name=name;}}5.1.2封裝的4種訪問控制級別public:公共的,最高的訪問級別,類的public成員所有類的成員都可以訪問
3、。protected:受保護的,類的protected成員只能被該類的成員以及其子類成員訪問。還可以被同一個包中其他類的成員訪問。private:私有的,不對外公開,類的private成員只能被該類的成員訪問,訪問級別最低。default:類的成員什么修飾符都沒有,又叫包修飾符,只有類本身成員和當前包下類的成員可以訪問。下面給出對比的表格以便更清晰的對比四種修飾符的使用環(huán)境,表5-1修飾符對比:修飾符本類同包其他類不同包子類不同包非子類publicYesYesYesYesprotectedYesYesYesNoprivateYesYe
4、sNoNodefaultYesNoNoNo5.2類的繼承在開始繼承的學習之前,先看兩個生活中的例子,如圖5-1動物的繼承,圖5-2汽車的繼承:動物食草動物食肉動物誰是父類?誰是子類?繼承需要符合的關系:父類更通用,子類更具體牛兔子獅子老虎奶牛肉牛圖5-1動物的繼承引擎數量外觀顏色剎車加速汽車屬性行為公交車卡車轎車圖5-2汽車的繼承5.2.1繼承的基本概念繼承,是對有著共同特性的多類事物,進行再抽象成一個類。這個類就是多類事物的父類。父類的意義在于抽取多類事物的共性。Java中的繼承要使用extends關鍵字,并且java中只允許單繼承
5、,也就是一個類只能有一個父類,是繼承關系呈樹狀,體現了java的簡單性。Java語言繼承的一般格式:class子類名extends父類名{方法體;}【實例5-2】Extends.java//創(chuàng)建父類classSUPER{inti,j;voidshowij(){System.out.println("i和j:"+i+""+j);}}classSUBextendsSUPER{intk;voidshowk(){System.out.println("k:"+k);}voidsum(){System.out.println("i+j+k:"+
6、(i+j+k));}}classExtends{publicstaticvoidmain(Stringargs[]){SUPERsuperTest=newSUPER();SUBsubTest=newSUB();System.out.println("superTest內容:");superTest.showij();System.out.println();subTest.i=1;subTest.j=2;subTest.k=3;System.out.println("subTest內容:");subTest.showij();subT
7、est.showk();System.out.println();System.out.println("i,j,k之和:");subTest.sum();}}運行結果:superTest內容:i和j:00subTest內容:i和j:12k:3i,j,k之和:i+j+k:65.2.2父類和子類父類代表的是共性,從一個父類繼承的所有類都繼承了這個父類的功能。在Java程序設計中,我們力圖發(fā)現并且提取共性來構造父類。子類繼承了父類的功能,并根據具體需求來添加功能。當創(chuàng)建一個新類的時候,不用全部寫出所有的屬性和方法,只需要聲明該類繼承已定義
8、過的父類的屬性和方法,這個新類便叫做子類,每個子類也可以成為將來某個子類的父類。子類可以從父類中繼承屬性,也可以繼承方法。子類對父類的繼承是Java語言中很常用,在這里總結子類繼承父類的準則:1)子類能夠繼承父類中pub