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

正文內容

java語言程序設計(中)清華大學ppt(編輯修改稿)

2025-02-15 08:30 本頁面
 

【文章內容簡介】 9 方法的查找 ? 如果在塑型前和塑型后的類中都提供了相同的方法,如果將此方法發(fā)送給塑型后的對象,那么系統將會調用哪一個類中的方法 ? –實例方法的查找 –類方法的查找 塑型 清華大學 鄭莉 JAVA語言程序設計 40 ? 從對象創(chuàng)建時的類開始,沿類層次向上查找 Manager man = new Manager()。 Employee emp1 = new Employee()。 Employee emp2 = (Employee)man。 ()。 // 調用 Employee類中的 putePay()方法 ()。 // 調用 Manager類中的 putePay()方法 ()。 // 調用 Manager類中的 putePay()方法 方法的查找 —— 實例方法的查找 塑型 清華大學 鄭莉 JAVA語言程序設計 41 ? 總是在引用變量聲明時所屬的類中進行查找 Manager man = new Manager()。 Employee emp1 = new Employee()。 Employee emp2 = (Employee)man。 ()。 //in Manager ()。 //in Employee ()。 //in Employee!!! 方法的查找 —— 類方法的查找 塑型 清華大學 鄭莉 JAVA語言程序設計 42 多態(tài)的概念 ? 多態(tài) – 是指不同類型的對象可以響應相同的消息 – 從相同的基類派生出來的多個類型可被當作同一種類型對待,可對這些不同的類型進行同樣的處理,由于多態(tài)性,這些 不同派生類對象 響應同一方法時的行為是有所差別的 – 例如 ? 所有的 Object類的對象都響應 toString()方法 ? 所有的 BankAccount類的對象都響應 deposit()方法 清華大學 鄭莉 JAVA語言程序設計 43 多態(tài)的目的 ? 多態(tài)的目的 –所有的對象都可被塑型為相同的類型,響應相同的消息 –使代碼變得簡單且容易理解 –使程序具有很好的“擴展性” 多態(tài)的概念 清華大學 鄭莉 JAVA語言程序設計 44 ? 繪圖 —— 直接的方式 – 希望能夠畫出任意子類型對象的形狀,可以在Shape 類中聲明幾個繪圖方法, 對不同的實際對象,采用不同的畫法 if (aShape instanceof Circle) ()。 if (aShape instanceof Triangle) ()。 if (aShape instanceof Rectangle)()。 多態(tài)的目的 —— 一個例子 多態(tài)的概念 清華大學 鄭莉 JAVA語言程序設計 45 ? 繪圖 —— 更好的方式 – 在每個子類中都聲明同名的 draw()方法 – 以后繪圖可如下進行 Shape s = new Circle()。 ()。 ? Circle屬于 Shape的一種,系統會執(zhí)行自動塑型 ? 當調用方法 draw時,實際調用的是 () ? 在程序運行時才進行綁定,接下來介紹綁定的概念 多態(tài)的目的 —— 一個例子 多態(tài)的概念 清華大學 鄭莉 JAVA語言程序設計 46 綁定的概念 ? 綁定 –指將一個方法調用同一個方法主體連接到一起 –根據綁定時期的不同,可分為 ?早期綁定 – 程序運行之前執(zhí)行綁定 ?晚期綁定 – 也叫作“動態(tài)綁定”或“運行期綁定 – 基于對象的類別,在程序運行時執(zhí)行綁定 多態(tài)的概念 清華大學 鄭莉 JAVA語言程序設計 47 ? 仍以繪圖為例,所有類都放在 binding包中 – 基類 Shape建立了一個通用接口 class Shape { void draw() {} void erase() {} } – 派生類覆蓋了 draw方法,為每種特殊的幾何形狀都提供獨一無二的行為 class Circle extends Shape { void draw() { (())。 } void erase() { (())。 } } 綁定的概念 —— 例 5_8 多態(tài)的概念 清華大學 鄭莉 JAVA語言程序設計 48 class Square extends Shape { void draw() { (())。 } void erase() { (())。 } } class Triangle extends Shape { void draw() { (())。 } void erase() { (())。 } } 綁定的概念 —— 例 5_8 多態(tài)的概念 清華大學 鄭莉 JAVA語言程序設計 49 ? 對動態(tài)綁定進行測試如下 public class BindingTester{ public static void main(String[] args) { Shape[] s = new Shape[9]。 int n。 for(int i = 0。 i 。 i++) { n = (int)(() * 3)。 switch(n) { case 0: s[i] = new Circle()。 break。 case 1: s[i] = new Square()。 break。 case 2: s[i] = new Triangle()。 } } for(int i = 0。 i 。 i++) s[i].draw()。 } } 綁定的概念 —— 例 5_8 多態(tài)的概念 清華大學 鄭莉 JAVA語言程序設計 50 ? 運行結果 () () () () () () () () () ? 說明 – 編譯時無法知道 s數組元素的具體類型,運行時才能確定類型,所以是 動態(tài)綁定 – 在主方法的循環(huán)體中,每次隨機生成指向一個 Circle、Square或者 Triangle的引用 綁定的概念 —— 例 5_8運行結果 多態(tài)的概念 清華大學 鄭莉 JAVA語言程序設計 51 ? 所有類都在 music包中 – Note類中定義了三個音符 – Instrument類中聲明并實現了一個 play方法 – Wind類繼承了 Instrument類,重載了 play方法 – Music類中包含了 main方法 class Note { private int value。 private Note(int val) { value = val。 } public static final Note MIDDLE_C = new Note(0), C_SHARP = new Note(1), B_FLAT = new Note(2)。 } 綁定的概念 —— music的例子 多態(tài)的概念 清華大學 鄭莉 JAVA語言程序設計 52 class Instrument { public void play(Note n) { (())。 } } class Wind extends Instrument { public void play(Note n) { (())。 } } 綁定的概念 (續(xù) ) —— music的例子 多態(tài)的概念 清華大學 鄭莉 JAVA語言程序設計 53 public class Music { public static void tune(Instrument i) { ()。 } public static void main(String[] args) { Wind flute = new Wind()。 tune(flute)。 } } ? 運行結果 () ? 說明 – 運行中, Instrument類的對象實際是 Wind類的,所以調用了 Wind類中的 play方法 綁定的概念 (續(xù) ) —— music運行結果 多態(tài)的概念 清華大學 鄭莉 JAVA語言程序設計 54 多態(tài)的應用 ? 多態(tài)的應用 –技術基礎 ?向上塑型技術:一個父類的引用變量可以指向不同的子類對象 ?動態(tài)綁定技術:運行時根據父類引用變量所指對象的實際類型執(zhí)行相應的子類方法,從而實現多態(tài)性 多態(tài)的概念 清華大學 鄭莉 JAVA語言程序設計 55 ? 聲明一個抽象類 Driver及兩個子類FemaleDriver及 MaleDriver ? 在 Diver類中聲明了抽象方法 drives, 在兩個子類中對這個方法進行了重寫 public abstract class Driver { public Driver( ) { } public abstract void drives( )。 } 多態(tài)的應用 (續(xù) ) —— 例 5_9 多態(tài)的概念 清華大學 鄭莉 JAVA語言程序設計 56 public class FemaleDriver extends Driver { public FemaleDriver( ) { } public void drives( ) { (A Female driver drives a vehicle.)。 } } public class MaleDriver extends Driver { public MaleDriver( ) { } public void drives( ) { (A male driver drives a vehicle.)。 } } 多態(tài)的應用 (續(xù) ) —— 例 5_9 多態(tài)的概念 清華大學 鄭莉 JAVA語言程序設計 57 public class Test1 { static public void main(String [ ] args) { Driver a = new FemaleDriver( )。 Driver b = new MaleDriver( )。 ( )。 ( )。 } } ? 運行結果 A Female driver drives a vehicle. A male driver drives a vehicle. 多態(tài)的應用 (續(xù) ) —— 例 5_9 多態(tài)的概念 清華大學 鄭莉 JAVA語言程序設計 58 ? 所有類都放在 drive包中 – 試想有不同種類的交通工具 (vehicle), 如公共汽車 (bus)及小汽車 (car), 由此可以聲明一個抽象類 Vehicle及兩個子類 Bus及 Car – 對前面的 drives方法進行改進,使其接收一個Vehicle類的參數,當不同類型的交通工具被傳送到此方法時,可以輸出具體的交通工具 多態(tài)的應用 (續(xù) ) —— 例 5_9改進 多態(tài)的概念 清華大學 鄭莉 JAVA語言程序設計 59 ? 測試代碼可改寫如下: public class DriverTest { static public void main(String [ ] args) { Driver a = new FemaleDriver( )。 Driver b = new MaleDriver( )。 Ve
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1