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

正文內(nèi)容

第四章類的重用-wenkub

2022-08-29 13:33:44 本頁(yè)面
 

【正文】 類的繼承 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 13 ? 設(shè)有三個(gè)類: Person, Employee, Manager。第四章 類的重用 鄭 莉 JAVA語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 2 目錄 ? 類的繼承 ? Object類 ? 終結(jié)類與終結(jié)方法 ? 抽象類 ? 類的組合 ? 包的應(yīng)用 ? 本章小結(jié) 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 3 類的繼承 ? 類的繼承 – 一種由已有的類創(chuàng)建新類的機(jī)制,是面向?qū)ο蟪绦蛟O(shè)計(jì)的基石之一 – 通過(guò)繼承,可以根據(jù)已有類來(lái)定義新類,新類擁有已有類的所有功能 – Java只支持類的單繼承,每個(gè)子類只能有一個(gè)直接父類 – 父類是所有子類的公共屬性及方法的集合,子類則是父類的特殊化 – 繼承機(jī)制可以提高程序的抽象程度,提高代碼的可重用性 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 4 ? 基類 (base class) – 也稱超類 (superclass) – 是被直接或間接繼承的類 ? 派生類 (derivedclass) – 也稱子類 (subclass) – 繼承其他類而得到的類 – 繼承所有祖先的狀態(tài)和行為 – 派生類可以增加變量和方法 – 派生類也可以覆蓋 (override)繼承的方法 繼承的概念 —— 基類和派生類 類的繼承 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 5 ? 子類對(duì)象與父類對(duì)象存在“ IS A”(或“ is kind of”)的關(guān)系 繼承的概念 —— is_a關(guān)系 類的繼承 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 6 ? 動(dòng)物類層次舉例 繼承的概念 —— 圖 4_1 一般 具體 動(dòng)物 蛇 蜥蜴 鯨 爬行動(dòng)物 哺乳動(dòng)物 狗 巨蜥 壁虎 壁虎 是一種 蜥蜴 爬行 動(dòng)物是 動(dòng)物的 一種 類的繼承 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 7 ? 舉例 繼承的概念 —— 又一個(gè)例子 類的繼承 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 8 ? 派生類產(chǎn)生的對(duì)象 –從外部來(lái)看,它應(yīng)該包括 ?與基類相同的接口 ?可以具有更多的方法和數(shù)據(jù)成員 –其內(nèi)包含著一個(gè)基類類型的子對(duì)象 繼承的概念 —— 派生類對(duì)象 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 9 繼承的語(yǔ)法 ? 繼承的語(yǔ)法 class childClass extends parentClass { //類體 } 類的繼承 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 10 ? 在一個(gè)公司中,有普通員工( Employees) 及管理人員( Magagers) 兩類人員 ? 職員對(duì)象( Employees) 可能有的屬性信息包括 – 員工號(hào)( employeeNumber) – 姓名( name) – 地址( address) – 電話號(hào)碼( phoneNumber) ? 管理人員( Managers) 除具有普通員工的屬性外,還可能具有下面的屬性 – 職責(zé)( responsibilities) – 所管理的職員( listOfEmployees) 繼承的語(yǔ)法 (續(xù) ) —— 例 4_1 類的繼承 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 11 ? Employee與 Manager的類圖 繼承的語(yǔ)法 (續(xù) ) —— 例 4_1 Employee employeeNumbe : int name : String address : String phoneNumber : String Manager responsibilities:String listOfEmployees:String 類的繼承 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 12 //父類 Employee class Employee { int employeeNumbe 。 其類層次如圖: 繼承的語(yǔ)法 (續(xù) ) —— 例 4_2 Person Employee Manager 類的繼承 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 14 public class Person { public String name。 } } public class Manager extends Employee { public String responsibilities。 = 123456。 = He Xia。 (())。 protected int c = 30。 //允許 (b)。 } class Child extends Parent { Float aNumber。 } } 隱藏和覆蓋 (續(xù) ) —— 例 4_4 class B1 extends A1 { int x=100。 (4)。 ()。 ()?!保?再編譯及運(yùn)行程序,會(huì)得到下面的結(jié)果 4 = 14 x= 100 14 = 16 x= 100 16 16 ? 在上面的結(jié)果中,第一行及最后一行都是語(yǔ)句“ ()。 } public Person(String aName, String aPhoneNumber, String anAddress) { name=aName。 protected String workPhoneNumber。 } } 有繼承時(shí)的構(gòu)造方法 (續(xù) ) —— 例 4_5 類的繼承 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 31 public class Professor extends Employee { protected String research。 research = aResearch。 else (NO)。 else (NO)。 BankAccount b = new BankAccount(Bob, 123456, )。 BankAccount b = (BankAccount) x。amp。 public Apple(String aColor, boolean isRipe) { color = aColor。 } public String getColor() { return color。 } Object類 Object類 (續(xù) ) —— 例 4_9 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 44 public boolean equals(Object obj) { if (obj instanceof Apple) { Apple a = (Apple) obj。 } return false。 (a is identical to b: + (a == b))。 } } Object類 (續(xù) ) —— 例 4_9 Object類 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 45 ? 運(yùn)行結(jié)果 – A ripe red apple is equal to A ripe red apple: true – a is identical to b: false – A ripe red apple is equal to A ripe red apple: true – a is identical to c: true Object類 (續(xù) ) —— 例 4_9運(yùn)行結(jié)果 Object類 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 46 ? Clone方法 –根據(jù)已存在的對(duì)象構(gòu)造一個(gè)新的對(duì)象 –在根類 Object 中被定義為 protected,所以需要覆蓋為 public –實(shí)現(xiàn) Cloneable 接口,賦予一個(gè)對(duì)象被克隆的能力 (cloneability) class MyObject implements Cloneable { //… } Object類 Object類 (續(xù) ) —— Clone方法 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 47 ? finalize方法 –在對(duì)象被垃圾回收器回收之前,系統(tǒng)自動(dòng)調(diào)用對(duì)象的 finalize方法 –如果要覆蓋 finalize方法,覆蓋方法的最后必須調(diào)用 Object類 (續(xù) ) —— finalize方法 Object類 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 48 ? getClass方法 – final 方法,返回一個(gè) Class對(duì)象,用來(lái)代表對(duì)象隸屬的類 – 通過(guò) Class 對(duì)象,你可以查詢 Class對(duì)象的各種信息:比如它的名字,它的基類,它所實(shí)現(xiàn)接口的名字等。t subclass final classes: class ChessAlgorithm class BetterChessAlgorithm extends ChessAlgorithm { ^ 1 error 終結(jié)類 (續(xù) ) —— 一個(gè)例子 終結(jié)類與終結(jié)方法 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 53 ? 終結(jié)方法的特點(diǎn) – 不能被派生類覆蓋 ? 終結(jié)方法存在的理由 – 對(duì)于一些比較重要且不希望子類進(jìn)行更改的方法,可以聲明為終結(jié)方法。 } //重寫(xiě)父類中的終結(jié)方法,不允許 } 終結(jié)類與終結(jié)方法 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 55 抽象類 ? 抽象類 – 代表一個(gè)抽象概念的類 – 沒(méi)有具體實(shí)例對(duì)象的類,不能使用 new方法進(jìn)行實(shí)例化 – 類前需加修飾符 abstract – 可包含常規(guī)類能夠包含的任何東西,例如構(gòu)造方法,非抽象方法 – 也可包含抽象方法,這種方法只有方法的聲明,而沒(méi)有方法的實(shí)現(xiàn) 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 56 ? 存在意義 – 抽象類是類層次中較高層次的概括,抽象類的作用是讓其他類來(lái)繼承它的抽象化的特征 – 抽象類中可以包括被它的所有子類共享的公共行為 – 抽象類可以包括被它的所有子類共享的公共屬性 – 在程序中不能用抽象類作為模板來(lái)創(chuàng)建對(duì)象; – 在用戶生成實(shí)例時(shí)強(qiáng)迫用戶生成更具體的實(shí)例,保證代碼的安全性 抽象類 抽象類 (續(xù) ) —— 存在意義 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 57 ? 將所有圖形的公共屬性及方法抽象到抽象類 Shape。 –僅有方法頭,而沒(méi)有方法體和操作實(shí)現(xiàn) – 具體實(shí)現(xiàn)由當(dāng)前類的不同子類在它們各自的類聲明中完成 –抽象類可以包含抽象方法 抽象類 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 61 ? 需注意的問(wèn)題 – 一個(gè)抽象類的子類如果不是抽象類,則它必須為父類中的所有抽象方法書(shū)寫(xiě)方法體,即重寫(xiě)父類中的所有抽象方法 – 只有抽象類才能具有抽象方法,即如果一個(gè)類中含有抽象方法,則必須將這個(gè)類聲明為抽象類 – 除了抽象方法,抽象類中還可以包括非抽象方法 抽象方法 (續(xù) ) —— 需注意的問(wèn)題 抽象類 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 62 ? 抽象方法的優(yōu)點(diǎn) –隱藏具體的細(xì)節(jié)信息,所有的子類使用的都是相同的方法頭,其中包含了調(diào)用該方法時(shí)需要了解的全部信息 –強(qiáng)迫子類完成指定的行為,規(guī)定其子類需要用到的“標(biāo)準(zhǔn)”行為 抽象方法 (續(xù) ) —— 抽象方法的優(yōu)點(diǎn) 抽象類 清華大學(xué) 鄭莉 JAVA語(yǔ)言程序設(shè)計(jì) 63 ? 各種圖形都需要實(shí)現(xiàn)繪圖方法 , 可在它們的抽象父類中聲明一個(gè) draw抽象方法 abstract class GraphicObject { int x, y。 public Client
點(diǎn)擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1