freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

面向?qū)ο笈cjava程序設(shè)計設(shè)計基礎(chǔ)、類與對象、繼承與多態(tài)ppt-資料下載頁

2024-10-16 05:34本頁面
  

【正文】 ce ( ) { return balance 。 } } 2021/11/13 01:37 第 89 頁 域的繼承與隱藏 1. 域的繼承 ?子類可以繼承父類的所有非私有域。例如各類電話類所包含的域分別為: ?Mobile_Phone類 long phoneNumber。 int local_Call。 int distance_Call。 int international_Call double balance。 來自繼承父類Telephone的 5個基本域 String workType。 2021/11/13 01:37 第 90 頁 域的繼承與隱藏 IP_Phone類 long phoneNumber。 int local_Call。 int distance_Call。 int international_Call double balance。 來自繼承父類Telephone的 5個基本域 double monthFee。 來自繼承父類 Fixed_Telephone boolearn started。 Date expireDate。 子類 IP_Phone類中聲明的域 2021/11/13 01:37 第 91 頁 域的繼承與隱藏 Ordinary_phone類 long phoneNumber。 int local_Call。 int distance_Call。 int international_Call double balance。 來自繼承父類Telephone的 5個基本域 double monthFee。 來自繼承父類 Fixed_Telephone boolean longdistanceService。 boolean internationalService。 子類 Ordinary_phone類中聲明的域 2021/11/13 01:37 第 92 頁 域的繼承與隱藏 2. 域的隱藏 ?子類重新定義一個與從父類繼承來的域變量完全相同的變量 , 稱為域的隱藏 。 即子類中定義了與父類同名的域變量 , 就是子類變量對同名父類變量的隱藏 。 這里所謂隱藏是指子類擁有了兩個相同名字的變量 , 一個來自繼承父類 , 另一個由自己定義 。 在這種情況下 ,當(dāng)子類執(zhí)行繼承的父類方法時 , 處理的是父類的變量 ,而當(dāng)子類執(zhí)行它自己定義的方法時 , 所操作的就是它自定義的變量 , 而把來自繼承父類的變量 “ 隱藏 ” 起來了 。 2021/11/13 01:37 第 93 頁 class A class B extends A { static int data_a=3。 { static int data_a = 5。 } } class C extends B { void print_out() { (―data_a= ‖+data_a)。 (―= ‖+)。 (―= ‖+)。 } } class demo { public static void main(String args[]) { C c = new C( )。 ( )。 } } data_a=5 =3 =5 域的繼承與隱藏 2021/11/13 01:37 第 94 頁 域的繼承與隱藏 固定電話 電話類 剩余金額、電話號碼 計費(fèi)方式、查詢余額 座機(jī)費(fèi) 計費(fèi)方式 普通電話 是否接通長途 剩余金額 計費(fèi)方式 ? 隱藏父類的剩余金額 例 2021/11/13 01:37 第 95 頁 方法的繼承與覆蓋 1. 方法的繼承 父類的非私有方法可以被子類所繼承。根據(jù)方法的繼承關(guān)系,將例 。 ( 1) Telephone類 abstract boolean charge_Mode()。 double getBalance()。 ( 2) Fixed_Telephone類 abstract boolean charge_Mode()。 //來自繼承父類 Telephone double getBalance()。 //來自繼承父類 Telephone ( 3) Ordinary_phone類 boolean charge_Mode()。 double getBelance()。 //來自繼承父類 Fixed_Telephone 2021/11/13 01:37 第 96 頁 方法的繼承與覆蓋 2. 方法的覆蓋 方法的覆蓋( Override)是指子類重定義從父類繼承來的一個同名方法,此時父類和子類中都存在一個同名方法,父類這個方法在子類中不復(fù)存在。這是子類通過重新定義與父類同名的方法,實現(xiàn)自身的行為。 方法覆蓋時應(yīng)遵循的原則 : (1)覆蓋后的方法不能比被覆蓋的方法有更嚴(yán)格的訪問權(quán)限。 (2)覆蓋后的方法不能比被覆蓋的方法產(chǎn)生更多的異常 。 2021/11/13 01:37 第 97 頁 方法的繼承與覆蓋 class Car { int color_number。 int door_number。 int speed。 public void push_break() { speed = 0。 } public void add_oil() { … } } class Trash_Car extends Car { double amount。 public void fill_trash() { … } public void push_break() { speed = speed – 10。 } } 2021/11/13 01:37 第 98 頁 方法的繼承與覆蓋 ? 覆蓋方法的調(diào)用 對于重寫的方法, Java運(yùn)行時系統(tǒng)根據(jù)調(diào)用該方法的實例的類型來決定選擇哪個方法調(diào)用。 public class DemoCar { public static void main( String args[ ] ) { Car aCar = new Trash_Car( )。 aCar. push_break( )。 } } 在這里, aCar. push_break( )調(diào)用的是 類Trash_Car中的push_break( )方法將被調(diào)用。 ?成員變量 的隱藏和方法的覆蓋的意義在于:通過隱藏域和覆蓋方法可以把父類的狀態(tài)和行為改為自身的狀態(tài)和行為,對外統(tǒng)一名字與接口,又不失其繼承性。 99 多 態(tài) 性 2021/11/13 01:37 第 100 頁 ?多態(tài)性是面向?qū)ο蟪绦蛟O(shè)計的又一個重要的技術(shù)和手段。 ?多態(tài)性是指同名的不同方法在程序中共存。即為同一個方法名定義幾個版本的實現(xiàn),運(yùn)行時根據(jù)不同情況執(zhí)行不同的版本。調(diào)用者只需使用同一個方法名,系統(tǒng)會根據(jù)不同情況,調(diào)用相應(yīng)的不同方法,從而實現(xiàn)不同的功能。 ?多態(tài)性又被稱為 “ 一個名字,多個方法 ” 。 2021/11/13 01:37 第 101 頁 多態(tài)性的概念 多態(tài)性的實現(xiàn)有兩種方式: ( 1)覆蓋實現(xiàn)多態(tài)性 通過子類對繼承父類方法的重定義來實現(xiàn)。使用時注意:在子類重定義父類方法時,要求與父類中方法的原型(參數(shù)個數(shù)、類型、順序)完全相同。 ( 2)重載實現(xiàn)多態(tài)性 在一個類中的定義多個同名方法的不同實現(xiàn)。定義方法時方法名相同,但方法的參數(shù)不同(參數(shù)的個數(shù)、類型、順序不同)。這些方法同名的原因是 具有類似的功能且目的相同 ,但在實現(xiàn)該功能的具體方式和細(xì)節(jié)方面有所不同,因此需要定義多種不同的方法體 2021/11/13 01:37 第 102 頁 覆蓋實現(xiàn)多態(tài)性 在覆蓋實現(xiàn)多態(tài)性的方式中,子類重定義父類方法,此時方法的名字、參數(shù)個數(shù)、類型、順序完全相同,那么如何區(qū)別這些同名的不同方法呢? 此時這些方法是存在不同的類層次結(jié)構(gòu)中,在調(diào)用方法時只需要指明是調(diào)用哪個類(或?qū)ο螅┑姆椒?,就很容易把它們區(qū)分開來,其調(diào)用形式為: 對象名 .方法名 或 類名 .方法名 例如, IP電話的計費(fèi),若建立 IP_Phone類的對象 my,其調(diào)用為: ()。 假如 charge_Mode()是一個類方法,則可使用類名,其調(diào)用為: ()。 例 2021/11/13 01:37 第 103 頁 重載實現(xiàn)多態(tài)性 ?若通過重載來實現(xiàn)多態(tài)性,則是在 同一個類 中定義多個同名方法。 ?由于重載發(fā)生在同一個類中,不能再用類名或?qū)ο竺麃韰^(qū)分不同的方法了,所以在重載中采用的區(qū)分方法是使用不同的形式參數(shù)表,包括形式參數(shù)的個數(shù)不同、類型不同或順序的不同。 ?例如,在重載加法 add(x, y)時,整數(shù)加法的形參類型是整型,復(fù)數(shù)加法的形參類型是復(fù)數(shù)型。根據(jù)填入的參數(shù)的類型或者參量等的不同,系統(tǒng)可以確定調(diào)用哪一個加法函數(shù)來完成加法計算。 例 2021/11/13 01:37 第 104 頁 多態(tài)性舉例 多態(tài)性還可以是指在程序中需要使用父類對象的地方,都可以用子類對象來代替。 例如: public class Employee extends Object {……} public class Manager extends Employee {……} 則: Employee e = new Manager()。 //合法語句 2021/11/13 01:37 第 105 頁 多態(tài)性舉例 ? 對象狀態(tài)的確定 在 Java語言中,提供了操作符 instanceof用來判斷對象是否屬于某個類的實例。 public void method (Employee e) { if ( e instanceof Manager ) { …//do something as a Manager } else if ( e instanceof Contractor ) { …//do something as a Contractor } else{ … //do something else } } 106 構(gòu)造方法的繼承與重載 2021/11/13 01:37 第 107 頁 構(gòu)造方法的重載 ?構(gòu)造方法的重載是指同一個類中定義不同參數(shù)的多個構(gòu)造方法,以完成不同情況下對象的初始化。例如, point類可定義不同的構(gòu)造方法創(chuàng)建不同的點對象。 point()。 //未初始化坐標(biāo) point(x)。 //初始化一個坐標(biāo) point(x, y)。 //初始化兩個坐標(biāo) 一個類的若干個構(gòu)造方法之間可以相互調(diào)用。當(dāng)類中一個構(gòu)造方法需要調(diào)用另一個構(gòu)造方法時,可以使用關(guān)鍵字 this,并且這個調(diào)用語句應(yīng)該是該構(gòu)造方法的第一個可執(zhí)行語句。 2021/11/13 01:37 第 108 頁 構(gòu)造方法的重載 【 例 】 對 Ordinary_phone類,可以根據(jù)需要定義幾個構(gòu)造方法: Ordinary_phone( ) { } //無參數(shù)的構(gòu)造方法,對象的各域置為默認(rèn)初始值 Ordinary_phone(boolean disService) { this()。 //調(diào)自身的無參數(shù)的構(gòu)造方法 longdistanceService= disService。 //確定是否開通國內(nèi)長途電話 } Ordinary_phone(boolean disService, boolean intService) { this(disService)。 //調(diào)自身的帶一個參數(shù)的構(gòu)造方法 internationalService = intService。//確定是否開通國際長途 } 2021/11/13 01:37 第 109 頁 構(gòu)造方法的重載 Ordinary_phone(bool
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1