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

正文內容

第四章類的重用(編輯修改稿)

2024-08-28 13:33 本頁面
 

【文章內容簡介】 ple)。 } Object類 Object類 (續(xù) ) —— 例 4_9 清華大學 鄭莉 JAVA語言程序設計 44 public boolean equals(Object obj) { if (obj instanceof Apple) { Apple a = (Apple) obj。 return ((()) amp。amp。 (ripe == ()))。 } return false。 } } public class AppleTester { public static void main(String args[]) { Apple a = new Apple(red, true)。 Apple b = new Apple(red, true)。 (a + is equal to + b + : + (b))。 (a is identical to b: + (a == b))。 Apple c = a。 (a + is equal to + c + : + (c))。 (a is identical to c: + (a == c))。 } } Object類 (續(xù) ) —— 例 4_9 Object類 清華大學 鄭莉 JAVA語言程序設計 45 ? 運行結果 – 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運行結果 Object類 清華大學 鄭莉 JAVA語言程序設計 46 ? Clone方法 –根據已存在的對象構造一個新的對象 –在根類 Object 中被定義為 protected,所以需要覆蓋為 public –實現 Cloneable 接口,賦予一個對象被克隆的能力 (cloneability) class MyObject implements Cloneable { //… } Object類 Object類 (續(xù) ) —— Clone方法 清華大學 鄭莉 JAVA語言程序設計 47 ? finalize方法 –在對象被垃圾回收器回收之前,系統自動調用對象的 finalize方法 –如果要覆蓋 finalize方法,覆蓋方法的最后必須調用 Object類 (續(xù) ) —— finalize方法 Object類 清華大學 鄭莉 JAVA語言程序設計 48 ? getClass方法 – final 方法,返回一個 Class對象,用來代表對象隸屬的類 – 通過 Class 對象,你可以查詢 Class對象的各種信息:比如它的名字,它的基類,它所實現接口的名字等。 void PrintClassName(Object obj) { (The Object39。s class is + ().getName())。 } Object類 (續(xù) ) —— getClass方法 Object類 清華大學 鄭莉 JAVA語言程序設計 49 ? notify、 notifyAll、 wait方法 – final方法,不能覆蓋 – 這三個方法主要用在多線程程序中 Object類 (續(xù) ) —— notify、 notifyAll、 wait方法 Object類 清華大學 鄭莉 JAVA語言程序設計 50 終結類與終結方法 ? 終結類與終結方法 –被 final修飾符修飾的類和方法 –終結類不能被繼承 –終結方法不能被當前類的子類重寫 清華大學 鄭莉 JAVA語言程序設計 51 終結類 ? 終結類的特點 –不能有派生類 ? 終結類存在的理由 –安全 : 黑客用來攪亂系統的一個手法是建立一個類的派生類,然后用他們的類代替原來的類 –設計 : 你認為你的類是最好的或從概念上你的類不應該有任何派生類 終結類與終結方法 清華大學 鄭莉 JAVA語言程序設計 52 ? 聲明 ChessAlgorithm 類為 final 類 final class ChessAlgorithm { . . . } ? 如果寫下如下程序: class BetterChessAlgorithm extends ChessAlgorithm { … } 編譯器將顯示一個錯誤 :6: Can39。t subclass final classes: class ChessAlgorithm class BetterChessAlgorithm extends ChessAlgorithm { ^ 1 error 終結類 (續(xù) ) —— 一個例子 終結類與終結方法 清華大學 鄭莉 JAVA語言程序設計 53 ? 終結方法的特點 – 不能被派生類覆蓋 ? 終結方法存在的理由 – 對于一些比較重要且不希望子類進行更改的方法,可以聲明為終結方法??煞乐棺宇悓Ω割愱P鍵方法的錯誤重寫,增加了代碼的安全性和正確性 – 提高運行效率。通常,當 java運行環(huán)境(如 java解釋器)運行方法時,它將首先在當前類中查找該方法,接下來在其超類中查找,并一直沿類層次向上查找,直到找到該方法為止 終結方法 終結類與終結方法 清華大學 鄭莉 JAVA語言程序設計 54 終結方法 (續(xù) ) —— 例 4_10 ? final 方法舉例 class Parent { public Parent() { } //構造方法 final int getPI() { return 。 } //終結方法 } ? 說明 – getPI()是用 final修飾符聲明的終結方法,不能在子類中對該方法進行重載,因而如下聲明是錯的 Class Child extends Parent { public Child() { } //構造方法 int getPI() { return 。 } //重寫父類中的終結方法,不允許 } 終結類與終結方法 清華大學 鄭莉 JAVA語言程序設計 55 抽象類 ? 抽象類 – 代表一個抽象概念的類 – 沒有具體實例對象的類,不能使用 new方法進行實例化 – 類前需加修飾符 abstract – 可包含常規(guī)類能夠包含的任何東西,例如構造方法,非抽象方法 – 也可包含抽象方法,這種方法只有方法的聲明,而沒有方法的實現 清華大學 鄭莉 JAVA語言程序設計 56 ? 存在意義 – 抽象類是類層次中較高層次的概括,抽象類的作用是讓其他類來繼承它的抽象化的特征 – 抽象類中可以包括被它的所有子類共享的公共行為 – 抽象類可以包括被它的所有子類共享的公共屬性 – 在程序中不能用抽象類作為模板來創(chuàng)建對象; – 在用戶生成實例時強迫用戶生成更具體的實例,保證代碼的安全性 抽象類 抽象類 (續(xù) ) —— 存在意義 清華大學 鄭莉 JAVA語言程序設計 57 ? 將所有圖形的公共屬性及方法抽象到抽象類 Shape。再將 2D及3D對象的特性分別抽取出來,形成兩個抽象類TwoDimensionalShape及 ThreeDimensionalShape – 2D圖形包括 Circles、 Triangles、 Rectangles和 Squares – 3D圖形包括 Cube、 Sphere、或 Tetrahedron – 在 UML中,抽象類的類名為斜體,以與具體類相區(qū)別 抽象類 (續(xù) ) —— 幾何形狀的例子 Shape Circle Triangle Rectangle Square TwoDimensionalShape ThreeDimensionalShape Cube Sphere Tetrahedron 抽象類 清華大學 鄭莉 JAVA語言程序設計 58 ? 例 46中,如果在應用系統中涉及到的人員只包括:Customers, Employees 及 Managers。 則 Person 類的子類對象覆蓋了應用中的對象,可以將 Person 類聲明為抽象類 抽象類 (續(xù) ) —— 人員的例子 Person Employee Manager Customer 抽象類 清華大學 鄭莉 JAVA語言程序設計 59 抽象類的聲明 ? 抽象類聲明的語法形式為 abstract class Number { . . . } 如果寫: new Number()。 編譯器將顯示錯誤 抽象類 清華大學 鄭莉 JAVA語言程序設計 60 抽象方法 ? 抽象方法 –聲明的語法形式為 public abstract returnType methodName(...)。 –僅有方法頭,而沒有方法體和操作實現 – 具體實現由當前類的不同子類在它們各自的類聲明中完成 –抽象類可以包含抽象方法 抽象類 清華大學 鄭莉 JAVA語言程序設計 61 ? 需注意的問題 – 一個抽象類的子類如果不是抽象類,則它必須為父類中的所有抽象方法書寫方法體,即重寫父類中的所有抽象方法 – 只有抽象類才能具有抽象方法,即如果一個類中含有抽象方法,則必須將這個類聲明為抽象類 – 除了抽象方法,抽象類中還可以包括非抽象方法 抽象方法 (續(xù) ) —— 需注意的問題 抽象類 清華大學 鄭莉 JAVA語言程序設計 62 ? 抽象方法的優(yōu)點 –隱藏具體的細節(jié)信息,所有的子類使用的都是相同的方法頭,其中包含了調用該方法時需要了解的全部信息 –強迫子類完成指定的行為,規(guī)定其子類需要用到的“標準”行為 抽象方法 (續(xù) ) —— 抽象方法的優(yōu)點 抽象類 清華大學 鄭莉 JAVA語言程序設計 63 ? 各種圖形都需要實現繪圖方法 , 可在它們的抽象父類中聲明一個 draw抽象方法 abstract class GraphicObject { int x, y。 void moveTo(int newX, int newY) { . . . } abstract void draw()。 } 抽象方法 (續(xù) ) —— 一個繪圖的例子 抽象類 清華大學 鄭莉 JAVA語言程序設計 64 ? 然后在每一個子類中重寫 draw方法,例如: class Circle extends GraphicObject { void draw() { . . . } } class Rectangle extends GraphicObject { void draw() { . . . } } 抽象方法 (續(xù) ) —— 一個繪圖的例子 抽象類 清華大學 鄭莉 JAVA語言程序設計 65 Loan Lease Mortgage HouseLoan CarLoan ? 貸款 (Loan)分為許多種類,如租借 (Lease)、 抵押 (Mortgage)、 房屋貸款 (HouseLoan)、 汽車貸款 (CarLoan)等 ? 將 Loan聲明為抽象類,并指定所有的子類對象都應具有的行為,如計算月還款值 (calculateMonthlyPayment), 還款 (makePayment), 取得客戶信息 (getClientInfo), 其中前兩個因貸款種類不同計算方法也不同,可聲明為抽象方法, Loan的所有子類都必須對這兩個抽象方法進行重寫 public abstract class Loan { public abstract float calculateMonthlyPayment()。 public abstract void makePayment(float amou
點擊復制文檔內容
物理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1