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

正文內(nèi)容

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

2025-10-07 05:34本頁(yè)面
  

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