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

正文內(nèi)容

面向?qū)ο蟪绦蛟O(shè)計概述-資料下載頁

2025-08-01 14:46本頁面
  

【正文】 telephone = tel 。 } } 3 面向?qū)ο缶幊? 103 類的繼承 ?例:清潔劑 s dilute( ) apply( ) print( ) scrub( ) 變量 方法 Cleanser Detergent 繼承 s dilute( ) apply( ) print( ) 繼承 繼承 scrub( ) 覆蓋 新定義 foam() 3 面向?qū)ο缶幊? 104 構(gòu)造方法的繼承 ?子類或定義自己的構(gòu)造方法,或使用隱含構(gòu)造方法。 ?子類沒有定義構(gòu)造 方法 時, 自動繼承父類不含參數(shù)的構(gòu)造 方法 ,并在創(chuàng)建新子類對象時自動執(zhí)行。 ?子類有自己的構(gòu)造 方法 時, 創(chuàng)建新子類對象時 也要先執(zhí)行 父類不含參數(shù)的構(gòu)造 方法 ,再執(zhí)行自己的構(gòu)造 方法。 3 面向?qū)ο缶幊? 105 class Meal { Meal(){… …} } class Bread { Bread(){… …} } class Cheese { Cheese(){… …} } class Lettuce { Lettuce(){… …} } class Lunch extends Meal { Lunch(){… …} } class PortableLunch extends Lunch { PortableLunch(){… …} } class Sandwich extends PortableLunch { Bread b = new Bread()。 Cheese c = new Cheese()。 Lettuce l = new Lettuce()。 Sandwich() {… ...} public static void main(String[] args) { new Sandwich()。 } } 例: 3 面向?qū)ο缶幊? 106 構(gòu)造方法的繼承 ?注意構(gòu)造 方法 的調(diào)用順序: – 按繼承順序依次調(diào)用父類的不含參數(shù)的構(gòu)造 方法 ,直到到達本子類 – 依次執(zhí)行本子類成員對象的構(gòu)造 方法 – 最后,執(zhí)行本子類的構(gòu)造 方法 Meal( ) - Lunch( ) - PortableLunch( ) - Bread( ) - Cheese( ) - Lettuce( ) - Sandwich( ) 3 面向?qū)ο缶幊? 107 構(gòu)造方法的繼承 ?子類的構(gòu)造 方法 定義中,如要調(diào)用父類的含參數(shù)的構(gòu)造 方法 ,需用 super關(guān)鍵字,且該調(diào)用語句必須是子類構(gòu)造 方法 的第一個可執(zhí)行語句。 ?若子類 的構(gòu)造方法中沒有 super(…) 語句,系統(tǒng)將隱含調(diào)用父類無參數(shù)構(gòu)造方法。 ?一構(gòu)造 方法 可利用 this調(diào)用本類其他的構(gòu)造方法 ,此時 this應(yīng)是第一個可執(zhí)行語句 3 面向?qū)ο缶幊? 108 調(diào)用父類構(gòu)造方法 ?在繼承情況下的對象初始化: – 為對象分配內(nèi)存并初始化 (0、 false、 null)。 如果沒有為類中的某些成員賦初始值, Java系統(tǒng)會為類的成員賦固定的初始值(數(shù)值變量的值為 0,布爾變量的值為 false ,未初始化的引用為 null ) 。 – 執(zhí)行每一層的類的顯式初始化。 – 執(zhí)行每一層的類的構(gòu)造方法(由于顯式或隱式調(diào)用)。 3 面向?qū)ο缶幊? 109 抽象與抽象類 ?程序員可以先創(chuàng)建一個定義共有屬性和方法的一般類,再從一般類派生出具有特性的新類。 ?抽象類實際上是所有子類的公共域和公共方法的集合,而每一個子類則是父類的特殊化,是對公共域和方法在功能、內(nèi)涵方面的擴展和延伸。 3 面向?qū)ο缶幊? 110 類繼承樹 Object class abstract class class final class class Java—單重繼承 3 面向?qū)ο缶幊? 111 抽象類與最終類 ?abstract 抽象類 — 沒有具體對象的概念類 – 較高層次的概括 – 抽象類的作用是讓其他類來繼承它的抽象化的特征。 – 在程序中不能用抽象類作為模板來創(chuàng)建對象。 ?final 最終類 — 該類不能有子類 。 電話卡類 無卡號類 有卡號類 磁卡 IC卡 校園 201卡 IP卡 200卡 3 面向?qū)ο缶幊? 112 抽象類與最終類 abstract class PhoneCard { …… } class Number_PhoneCard extends PhoneCard { …… } final class D200_Card extends Number_PhoneCard{ ……. } ?抽象類經(jīng)常要包含某些抽象方法(方法的具體實現(xiàn)要在子類中實現(xiàn))。 ?final可以與 abstract一起使用嗎? 3 面向?qū)ο缶幊? 113 抽象方法 ?abstract 抽象方法 僅有方法頭而沒有方法體的方法,為該類的子類定義一個方法的接口標(biāo)準(zhǔn)。 abstract void performDial () 。 一個抽象類的子類如果不是抽象類,則它必須為父類中的所有抽象方法書寫方法體。 非抽象方法 抽象方法 ? ? X ? 一般類 抽象類 3 面向?qū)ο缶幊? 114 最終方法 ?final 最終方法 – 不能被當(dāng)前類的子類重新定義的方法。 – 子類不能再重新定義與此方法同名的自己的方法,而僅能使用從父類繼承來的方法。只能繼承但不能修改。 ?固定了這個方法所對應(yīng)的具體操作,可以防止子類對父類關(guān)鍵方法的錯誤的重定義,保證了程序的安全性和正確性。 3 面向?qū)ο缶幊? 115 電話卡 域: 余額 方法:撥打電話 查詢余額 無卡號電話卡 域: 對應(yīng)電話機型號 方法: 獲得電話機型號 有卡號電話卡 域:卡號,密碼接 入號碼,接通 方法: 登錄交換機 繼承 繼承 電話磁卡 域: 使用地域 方法: 撥打電話 200卡 域: 附加費 方法:修改密碼 撥打電話 IP卡 域: 失效日期 方法: 撥打電話 電話 IC卡 域: 方法: 撥打電話 繼承 繼承 繼承 繼承 類繼承圖 變量的繼承與擴充 3 面向?qū)ο缶幊? 116 變量的繼承與擴充 double balance。 long cardNumber。 int password。 String connectNumber。 boolean connect。 double additoryFee。 D200_Card類 double balance。 long cardNumber。 int password。 String connectNumber。 boolean connect。 Number_ PhoneCard類 double balance PhoneCard類 3 面向?qū)ο缶幊? 117 變量的隱藏 class D200_Card extends Number_PhoneCard { double additoryFee。 //新增 double balance。 //隱藏 boolean performDial() { if( balance ( + additoryFee )) { balance = ( + additoryFee)。 return true。 } else return false。 } } 定義自己的變量 隱藏了父類變量 balance balance 3 面向?qū)ο缶幊? 118 變量的隱藏 ? 如何訪問被隱藏的父類的變量: – 調(diào)用從父類繼承的方法操作的是從父類繼承的變量 。 – 使用 。 class test { public static void main(String[] args){ a a1 = new a()。 ()。 1 b b1 = new b()。 ()。 1 1 100 }} class a { int x = 1。 void print(){ (x)。 } } class b extends a{ int x=100。 void print(){ (= + )。 ()。 (x= + x)。 }} 3 面向?qū)ο缶幊? 119 方法覆蓋 (overriding) ? 在面向?qū)ο蟮某绦蛟O(shè)計中,子類可以把從父類那里繼承來的某個方法改寫,形成同父類方法同名、解決的問題也相似、但具體實現(xiàn)和功能卻不盡一致的新方法。 ? 定義與父類完全相同的方法,實現(xiàn)對父類方法的覆蓋: – 完全相同的方法名 – 完全相同的參數(shù)列表 – 完全相同類型的返回值 – 注意:在滿足上述三個條件同時,還必須保證:訪問權(quán)限不能縮小,拋出的例外要相同 ? 三個條件有一個不滿足 , 就不是方法的覆蓋 , 而是子類自己定義與父類無關(guān)的方法 , 父類的方法未被覆蓋 , 因而仍然存在 。 ? 調(diào)用父類被覆蓋的方法 — 3 面向?qū)ο缶幊? 120 方法覆蓋 抽象方法的實現(xiàn) ? PhoneCard類抽象了一個其子類共有的方法: abstract boolean performDial()。 ? 這個方法代表的相同功能(撥打電話),但在不同種類的電話卡中,其具體實現(xiàn)是不同的。不同的子類可以重新定義該方法。 ? 但是所有的類中,凡是實現(xiàn)撥打電話這種功能的方法,盡管內(nèi)容不同,卻共享相同的名字 ——performDial ? 由于同名的不同方法是屬于不同的類,所以只需在調(diào)用方法時指明是哪個類的方法即可區(qū)分(類名 .方法名或?qū)ο竺?.方法名)。 3 面向?qū)ο缶幊? 121 方法的覆蓋 abstract PhoneCard類: abstract boolean performDial()。 double getBalance() abstract Number_PhoneCard類: abstract boolean performDial()。 double getBalance() boolean performConnection(long ,int pw) final D200_Card類: boolean performDial() 覆蓋 實現(xiàn)抽象方法 double getBalance() 覆蓋 實現(xiàn)細節(jié)不同 boolean performConnection(long ,int pw) 3 面向?qū)ο缶幊? 122 方法重載 /方法覆蓋 /變量隱藏 ?方法的覆蓋與方法重載的區(qū)別 – 重載:一個類中,同名方法(參數(shù)不同) – 覆蓋:子類對父類方法的覆蓋(不同類的同名方法) ?方法的覆蓋與變量的隱藏的區(qū)別: – 子類隱藏父類的變量只是使之不可見,父類的同名變量在子類對象中仍然占有自己獨立的內(nèi)存空間; – 而子類方法對父類同名方法的覆蓋將清除父類方法占用的內(nèi)存,從而使父類方法在子類對象中不復(fù)存在。 3 面向?qū)ο缶幊? 123 類的初始化 靜態(tài)初始化器 ? 由關(guān)鍵字 static引導(dǎo)的一對大括號括起的語句組 。 用來完成類的初始化的工作 , 作用與構(gòu)造方法相似 ? 與構(gòu)造方法的區(qū)別: – 構(gòu)造方法是對每個新創(chuàng)建的對象初始化 , 而靜態(tài)初始化器
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1