面向?qū)ο蟮母拍詈蚃ava實(shí)現(xiàn)ppt課件_第1頁
面向?qū)ο蟮母拍詈蚃ava實(shí)現(xiàn)ppt課件_第2頁
面向?qū)ο蟮母拍詈蚃ava實(shí)現(xiàn)ppt課件_第3頁
面向?qū)ο蟮母拍詈蚃ava實(shí)現(xiàn)ppt課件_第4頁
面向?qū)ο蟮母拍詈蚃ava實(shí)現(xiàn)ppt課件_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第四章第四章 面向?qū)ο蟮母拍詈兔嫦驅(qū)ο蟮母拍詈蚃avaJava實(shí)現(xiàn)實(shí)現(xiàn)-2-2回想回想l類是具有一樣屬性和行為的一組對象的集合類是具有一樣屬性和行為的一組對象的集合 , ,對對象是類的實(shí)例象是類的實(shí)例l封裝是隱藏對象實(shí)現(xiàn)細(xì)節(jié)的過程,以便不讓用戶封裝是隱藏對象實(shí)現(xiàn)細(xì)節(jié)的過程,以便不讓用戶看到實(shí)現(xiàn)的細(xì)節(jié)看到實(shí)現(xiàn)的細(xì)節(jié)l類可用類可用ClassClass來定義,類的變量和方法可被該類的來定義,類的變量和方法可被該類的實(shí)例訪問實(shí)例訪問, ,圓點(diǎn)符號用于訪問對象的成員,構(gòu)造函圓點(diǎn)符號用于訪問對象的成員,構(gòu)造函數(shù)在創(chuàng)建對象時(shí)初始化對象數(shù)在創(chuàng)建對象時(shí)初始化對象l包可用包可用packagepackage來聲明來

2、聲明 ,可用,可用import import 來導(dǎo)入包來導(dǎo)入包目的目的l了解承繼及其特點(diǎn)了解承繼及其特點(diǎn)l運(yùn)用運(yùn)用JAVAJAVA程序?qū)崿F(xiàn)承繼程序?qū)崿F(xiàn)承繼l了解多態(tài)及其特點(diǎn)設(shè)計(jì)了解多態(tài)及其特點(diǎn)設(shè)計(jì)l運(yùn)用運(yùn)用JAVAJAVA程序?qū)崿F(xiàn)多態(tài)程序?qū)崿F(xiàn)多態(tài)l掌握訪問修飾符和方法修飾符掌握訪問修飾符和方法修飾符承繼承繼父父 類類 子類子類 父類父類/ /子類子類是相對的是相對的Cow類類Lion類類Tiger類類Animals類類Carnivorous類類Herbivorous類類Coat類類承繼的特點(diǎn)承繼的特點(diǎn)具有層次構(gòu)造子類承繼了父類的屬性和方法承繼的優(yōu)點(diǎn)承繼的優(yōu)點(diǎn)代碼的可重用性父類的屬性和方法可用于

3、子類設(shè)計(jì)運(yùn)用程序變得更加簡單可以輕松地自定義子類承繼的承繼的JAVAJAVA實(shí)現(xiàn)實(shí)現(xiàn) 演示:例如 1l編寫一個(gè)父類編寫一個(gè)父類l運(yùn)用運(yùn)用 extends 關(guān)鍵字,編寫子類關(guān)鍵字,編寫子類class Car extends Vehicles /*構(gòu)造方法. */ Car() /* 顯示子類 Car 的信息. */ void show() System.out.println(“從子類 Car 中輸出的信息 ); System.out.println(“交通工具的稱號 - + name); System.out.println(“交通工具的顏色 - + color); System.out.pri

4、ntln(“座位的數(shù)量 - + seats); System.out.println(=); class Vehicles /*存儲交通工具的稱號. */ protected String name = Honda Civic; /* 存儲顏色信息.*/ protected String color = Red; /* 存儲座位信息. */ protected int seats = 5; /* 構(gòu)造方法.*/ Vehicles() /* *顯示父類汽車的詳細(xì)信息 */ void showDetail() System.out.println(從父類 Vehicles 中輸出的信息); Sys

5、tem.out.println(稱號 - + name); System.out.println(顏色 - + color ); public class CarTest /* *構(gòu)造方法*/ CarTest() /* * 這是 main 方法 * param args 傳送至 main 方法的參數(shù) */ public static void main(String args) /* 聲明一個(gè)對象*/ Car vehicle = new Car(); vehicle.show(); vehicle.showDetail(); 子類構(gòu)造方法子類構(gòu)造方法 2-12-1子類構(gòu)造方法的稱號與類的稱號一

6、樣先調(diào)用父類構(gòu)造方法,再調(diào)用子類構(gòu)造方法要調(diào)用父類構(gòu)造方法,運(yùn)用關(guān)鍵字 super子類構(gòu)造方法子類構(gòu)造方法 2-22-2l調(diào)用父類構(gòu)造方法的語法為:調(diào)用父類構(gòu)造方法的語法為:lsuper() 或或 super(參數(shù)列表參數(shù)列表) ;lsuper () 方法一直指向調(diào)用類的父類方法一直指向調(diào)用類的父類調(diào)用父類構(gòu)造方法調(diào)用父類構(gòu)造方法演示:例如 3l關(guān)鍵字 super 的用法class FictionAuthor extends Author /* 存儲作者的小說類型.*/ String storytype; /* 子類構(gòu)造方法. param name 傳送至構(gòu)造方法的參數(shù) param type

7、傳送至構(gòu)造方法的參數(shù)*/ FictionAuthor(String name, String type) super(name); storytype = type; System.out.println(“從 Fiction Author 類輸出); System.out.println(“小說類型為 + storytype); 調(diào)用父類構(gòu)造方法Author(String str) name = str; System.out.println(“從 Author 類輸出); System.out.println(“姓名為 + name); 多態(tài)性多態(tài)性 2-12-1l多態(tài)性是指多態(tài)性是指“多

8、種方式多種方式l它運(yùn)用不同的實(shí)例而執(zhí)行不同操作它運(yùn)用不同的實(shí)例而執(zhí)行不同操作l多態(tài)包括方法重寫和方法重載多態(tài)包括方法重寫和方法重載多態(tài)性多態(tài)性 2-22-2父類子類 - 繪制和挪動三角形子類 - 繪制和挪動矩形 子類 - 繪制和挪動五邊形Draw ()Move ()TriangleDraw () DrawTraingleMove () MoveTriangleVerticesRectangleDraw () DrawRectangleMove () MoveRectangleCornerPentagonDraw () DrawPentagonMove () MovePentagonVertic

9、es方法重載方法重載 2-12-1方法重載方法重載類中有多個(gè)具有一樣稱號的方法類中有多個(gè)具有一樣稱號的方法方法具有不同的參數(shù)列表方法重載方法重載 2-22-2演示:例如 4public class DisplayNumber /* 無參數(shù)可顯示/ void display() System.out.println(無參數(shù)可顯示!); /* * param num 傳送至 display 方法的參數(shù) * param num1 傳送至 display 方法的參數(shù) */ void display(int num, int num1) System.out.println(兩個(gè)整數(shù)是: + num +

10、 + num1); /* * param型的 count 由 display 方法接納 */ void display(double count) System.out.println(在 displaydouble方法內(nèi): + count) public static void main(String arg) int count = 25; DisplayNumber dispObj = new DisplayNumber(); dispObj.display(); dispObj.display(10 , 20); /* 不存在具有一個(gè) int 型參數(shù)的方法, *int 型值自動轉(zhuǎn)化為

11、double 型值 */ System.out.println(“調(diào)用 display(double) 方法, + “運(yùn)用 int 變量: + count); dispObj.display(count); dispObj.display(25.5); 方法重寫方法重寫 2-12-1子類和父類的方法具有一樣的稱號和類型用子類對象調(diào)用子類中的重寫方法super.methodname() 用于調(diào)用父類中的方法方法重寫方法重寫 2-22-2l父類和子類中具有一樣稱號和類型的方法父類和子類中具有一樣稱號和類型的方法 public static void main(String arg) Rectang

12、le rectObj = new Rectangle(10, 15); rectObj.getPerimeter(); Rectangle sqObj= new Square(15); sqObj.getPerimeter(); 調(diào)用父類方法調(diào)用子類方法class Square extends Rectangle Square(int len) length = len; /* 計(jì)算周長.*/ void getPerimeter() System.out.println(“正方形的周長為 + (4 * length); class Rectangle int length; int width

13、; Rectangle(int len , int wid) length = len; width = wid; /* 計(jì)算矩形的周長.*/ void getPerimeter() System.out.println(“矩形的周長為 + (2 * (length + width); 訪問修飾符訪問修飾符 3-13-1l信息隱藏是信息隱藏是 OOP 最重要的功能之一,也是運(yùn)用訪問修飾符的最重要的功能之一,也是運(yùn)用訪問修飾符的緣由緣由l信息隱藏的緣由包括:信息隱藏的緣由包括:l對任何實(shí)現(xiàn)細(xì)節(jié)所作的更改不會影響運(yùn)用該類的代碼對任何實(shí)現(xiàn)細(xì)節(jié)所作的更改不會影響運(yùn)用該類的代碼l防止用戶不測刪除數(shù)據(jù)防止

14、用戶不測刪除數(shù)據(jù)l此類易于運(yùn)用此類易于運(yùn)用 訪問修飾符訪問修飾符privateprotectedpublic默許訪問修飾符訪問修飾符 3-23-2該類或非該類均該類或非該類均可訪問可訪問public只需該類可以訪只需該類可以訪問問private一樣數(shù)據(jù)包中的一樣數(shù)據(jù)包中的類可以訪問類可以訪問默許默許該類及其子類的該類及其子類的成員可以訪問,成員可以訪問,同一個(gè)包中的類同一個(gè)包中的類也可訪問也可訪問protected訪問修飾符訪問修飾符 3-33-3l訪問修飾符可訪問性訪問修飾符可訪問性位置位置private默許默許protected public同一個(gè)類同一個(gè)類是是是是是是是是同一個(gè)包內(nèi)的類同

15、一個(gè)包內(nèi)的類否否是是是是是是不同包內(nèi)的子類不同包內(nèi)的子類否否否否是是是是不同包并且不是子不同包并且不是子類類否否否否否否是是方法修飾符方法修飾符staticfinalabstractstatic static 修飾符修飾符 3-1 3-1lstatic修飾符修飾的方法叫靜態(tài)方法修飾符修飾的方法叫靜態(tài)方法l目的目的l使該方法獨(dú)立于類的實(shí)例,運(yùn)用類去訪問,而使該方法獨(dú)立于類的實(shí)例,運(yùn)用類去訪問,而不是類實(shí)例,所以也叫類方法不是類實(shí)例,所以也叫類方法static static 修飾符修飾符 3-2 3-2l調(diào)用靜態(tài)方法的語法為:調(diào)用靜態(tài)方法的語法為:l classname.methodname( )

16、; classname.methodname( ); 可以調(diào)用其他靜態(tài)方法必需訪問靜態(tài)數(shù)據(jù)不能運(yùn)用 super 或 this 關(guān)鍵字演示:例如 6 public static void main(String arg) /*初始化變量*/ double inch = 66; double feet = InchesToFeet.convert(inches); System.out.println(inch + “英寸為 + feet + “英尺。); l運(yùn)用類稱號調(diào)用運(yùn)用類稱號調(diào)用 static 方法方法public static double convert(double in) retu

17、rn (in / inches); static static 修飾符修飾符 3-3 3-3final final 修飾符修飾符 不能修正變量不能修正變量子類不能重寫方法子類不能重寫方法abstract abstract 修飾符修飾符 3-1 3-1l由由abstract修飾的方法叫籠統(tǒng)方法;由修飾的方法叫籠統(tǒng)方法;由abstract修飾的類修飾的類叫籠統(tǒng)類叫籠統(tǒng)類l籠統(tǒng)方法必需聲明在籠統(tǒng)類中籠統(tǒng)方法必需聲明在籠統(tǒng)類中l(wèi)籠統(tǒng)方法語法:籠統(tǒng)方法語法:labstract type method_name(parameter_list);l聲明籠統(tǒng)類語法:聲明籠統(tǒng)類語法:l abstract cla

18、ss l運(yùn)用:父類中的某些籠統(tǒng)不包含任何邏輯,并需求在子類運(yùn)用:父類中的某些籠統(tǒng)不包含任何邏輯,并需求在子類中重寫,子類提供這種籠統(tǒng)方法的實(shí)現(xiàn)細(xì)節(jié)中重寫,子類提供這種籠統(tǒng)方法的實(shí)現(xiàn)細(xì)節(jié)abstract abstract 修飾符修飾符 3-2 3-2l籠統(tǒng)類可以具有指向子類對象的對象援用籠統(tǒng)類可以具有指向子類對象的對象援用 籠統(tǒng)類不能被實(shí)例化構(gòu)造方法 和 static 方法不能是籠統(tǒng)的父類的籠統(tǒng)方法往往在子類中實(shí)現(xiàn) abstract abstract 修飾符修飾符 3-3 3-3 演示:例如 7l籠統(tǒng)方法不具有任何實(shí)現(xiàn)代碼籠統(tǒng)方法不具有任何實(shí)現(xiàn)代碼abstract class Shape . .

19、 . . . . . . . . . protected double length;protected double width;. . . . . . . . . . . . . . . . . . . . .abstract double area();class Square extends Shape /* 構(gòu)造方法. *param num 傳送至構(gòu)造方法的參數(shù) *param num1 傳送至構(gòu)造方法的參數(shù) */ Square(final double num, final double num1) super(num, num1); /* * 計(jì)算正方形的面積. * return

20、double */ double area() System.out.println(“正方形的面積為:); return length * width; 接口接口l接口就是某個(gè)事物對外提供的一些功能的聲明接口就是某個(gè)事物對外提供的一些功能的聲明 l可以利用接口實(shí)現(xiàn)多態(tài),同時(shí)接口也彌補(bǔ)了可以利用接口實(shí)現(xiàn)多態(tài),同時(shí)接口也彌補(bǔ)了Java單一承繼的弱點(diǎn)單一承繼的弱點(diǎn)l運(yùn)用運(yùn)用interface關(guān)鍵字定義接口關(guān)鍵字定義接口l普通運(yùn)用接口聲明方法或常量,接口中的方法普通運(yùn)用接口聲明方法或常量,接口中的方法只能是聲明,不能是詳細(xì)的實(shí)現(xiàn)只能是聲明,不能是詳細(xì)的實(shí)現(xiàn)創(chuàng)建接口的步驟創(chuàng)建接口的步驟 2-12-1/

21、 定義方法的接口public interface myinterface public void add(int x, int y);public void volume(int x,int y, int z);/ 定義程序運(yùn)用的常量的接口public interface myconstants public static final double price = 1450.00; public static final int counter = 5;定義一個(gè)接口:創(chuàng)建接口的步驟創(chuàng)建接口的步驟 2-22-2l編譯如下:編譯如下:ljavac myinterface.javal用關(guān)鍵字用關(guān)鍵字 implements 實(shí)現(xiàn)接口,例如:實(shí)現(xiàn)接口,例如:lclass demo implements myinterfacel假設(shè)有一個(gè)以上接口被實(shí)現(xiàn),那么

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論