




已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
128 習(xí)題 1 類之間的關(guān)系除了聚合和關(guān)聯(lián)外 還有繼承 請(qǐng)用 UML 符號(hào)描述下述類之間的關(guān) 系 1 賬戶和存款帳戶 2 學(xué)生和人 3 水果和橙子 4 教師和課程 5 班級(jí)和學(xué)生 答 1 繼承關(guān)系 2 繼承關(guān)系 3 繼承關(guān)系 4 關(guān)聯(lián)關(guān)系 5 聚合關(guān)系 2 簡(jiǎn)述 Object的意義 以及在判斷相等時(shí) 子類需要如何重寫超類的方法 答 Object 的類 它是所有 Java 類 JDK提供的 第三方類庫(kù) 用戶自定義的 的根類 一個(gè)類如果在聲明時(shí)沒(méi)有明確使用 extends 來(lái)標(biāo)記自己派生于某個(gè)類 那么編譯器將自動(dòng)將 Object 類作為該類的超類 因此 所有的類最終都來(lái)自 Object 按照繼承的特性 所有的 類都繼承了 Object 類中的所有方法 Object 提供了一個(gè)對(duì)象基本的行為定義 例如 兩個(gè) 對(duì)象的相同比較 equals 對(duì)象的字符串表示 toString 對(duì)象的復(fù)制 clone 等等 這 些沒(méi)有用 final修飾的方法其行為一般都需要在子類中重新定義 在判斷相等時(shí) 子類需要重寫 Object類中的 equals方法 定義自身判斷相等的原則 3 超類的構(gòu)造方法是否可以被子類覆蓋 重寫 答 不會(huì) 子類并不繼承超類的構(gòu)造方法作為自己的構(gòu)造方法 因?yàn)闃?gòu)造方法用來(lái)構(gòu) 造類的對(duì)象 子類和父類并非同一類型 因此子類不能直接繼承父類的構(gòu)造方法 必須有 自己的構(gòu)造方法 但是子類的構(gòu)造方法并不會(huì)覆蓋超類的構(gòu)造方法 雖然不能繼承超類的 構(gòu)造方法 但子類可以通過(guò) super 關(guān)鍵字來(lái)調(diào)用父類已定義的構(gòu)造方法 4 試述 super的作用和使用規(guī)則 答 1 顯式的調(diào)用父類的方法當(dāng)從一個(gè)類繼承時(shí) 子類和父類都有一個(gè)同名方法 也就 是子類覆蓋了父類的方法 可是又想調(diào)用父類的方法 那么就要用 super 2 在構(gòu)造方法中 與 this用法類似 利用 super可以調(diào)用父類的構(gòu)造方法 5 什么是多態(tài) 簡(jiǎn)述 Java 中多態(tài)的實(shí)現(xiàn)機(jī)制 答 多態(tài)性是面向?qū)ο蟮暮诵奶卣髦?類的多態(tài)性提供類中成員設(shè)計(jì)的靈活性和方法 執(zhí)行的多樣性 在 JAVA中多態(tài)性表現(xiàn)如下 1 方法重載 重載表現(xiàn)為同一個(gè)類中方法的多態(tài)性 一個(gè)類生命多個(gè)重載方法就是為一種功能提供多 種實(shí)現(xiàn) 編譯時(shí) 根據(jù)方法實(shí)際參數(shù)的數(shù)據(jù)類型 個(gè)數(shù)和次序 決定究竟應(yīng)該執(zhí)行重載方法中的 哪一個(gè) 2 子類重定義從父類繼承來(lái)的成員 當(dāng)子類從父類繼承來(lái)的成員不適合子類時(shí) 子類不能刪除它們 但可以重定義它們 子 類重定義父類成員 同名成員在父類與子類之間表現(xiàn)出多態(tài)性 父類對(duì)象引用父類成員 129 子類對(duì)象引用子類成員 不會(huì)產(chǎn)生沖突和混亂 子類可重定義父類的同名成員變量 稱子類隱藏父類成員變量 子類也可以重定義父類 的同名成員方法 當(dāng)子類方法的參數(shù)列表與父類方法參數(shù)列表完全相同時(shí) 稱為子類方法 覆蓋 override 父類方法 覆蓋父類方法時(shí) 子類方法的訪問(wèn)權(quán)限不能小于父類方法的權(quán) 限 從編譯運(yùn)行的角度 在 JAVA中多態(tài)有兩種形式 1 編譯時(shí)多態(tài)性 對(duì)于多個(gè)同名方法 如果在編譯時(shí)能夠確定執(zhí)行同名方法中的哪一個(gè) 則稱為編譯時(shí)多 態(tài)性 2 運(yùn)行時(shí)多態(tài)性 如果在編譯時(shí)不能確定 只能在運(yùn)行時(shí)才能確定執(zhí)行多個(gè)同名方法中的哪一個(gè) 則稱 為運(yùn)行時(shí)多態(tài)性 6 簡(jiǎn)述繼承和實(shí)現(xiàn)接口的區(qū)別 答 簡(jiǎn)單來(lái)看 抽象類和接口都可以允許定義子類必須實(shí)現(xiàn)的方法 但實(shí)際上兩者在 語(yǔ)義和用途上有著很大的差別 從語(yǔ)法規(guī)定來(lái)看它們的區(qū)別很明顯 Java 支持一個(gè)類只能繼承一個(gè)超類 但支持一個(gè) 類實(shí)現(xiàn)多個(gè)接口 一個(gè)接口可以繼承多個(gè)接口 另外 接口中的方法僅是抽象方法的聲 明 而抽象類中可以包含方法的具體實(shí)現(xiàn) 最重要的 抽象類本身是一類型系統(tǒng)中的超類 而接口僅是抽象方法的集合 因此抽 象類更多的用在描述問(wèn)題的類的層次結(jié)構(gòu)中 而接口更多的用在描述系統(tǒng) 或組件 所提供 的公共服務(wù)中 7 假定銀行的一個(gè)存取款系統(tǒng)有兩類客戶 一類是現(xiàn)金用戶 一類是信用卡用戶 每種 客戶都可以實(shí)現(xiàn)存 取 和查詢余額和交易歷史 信用卡用戶還可以查詢透支情況和信 用情況 要求 對(duì)于現(xiàn)金用戶 每次取款操作只能在賬戶實(shí)際額度內(nèi)操作 而信用卡用 戶則根據(jù)其信用級(jí)別有一定的透支限額 請(qǐng)根據(jù)你的理解 運(yùn)用所學(xué)的抽象 接口 繼承等面向?qū)ο蟮母拍罱⒛P?abstract class Account String name String aid double balance public Account String name String aid double balance 請(qǐng)把構(gòu)造函數(shù)補(bǔ)充完整 this name name this aid aid this balance balance public void deposit double amount 請(qǐng)把存款方法補(bǔ)充完整 this balance amount public abstract void withdraw double amount 130 public double getBalance 請(qǐng)把查詢余額方法補(bǔ)充完整 return balance public String toString return name aid balance class CashAccount extends Account String type 工資卡 借記卡 理財(cái)卡 public CashAccount String name String aid double balance String type super name aid balance this type type Override public void withdraw double amount TODO Auto generated method stub if balance 0 沒(méi)透支 System out println name 沒(méi)透支 你取了 amount balance amount else 透支 temp temp if temp 300 打印語(yǔ)句 停車 QQ當(dāng) maxSpeed 120 打印語(yǔ)句 停車 abstract class Car int maxSpeed public Car int maxSpeed this maxSpeed maxSpeed public abstract void stop class Ford extends Car public Ford int maxSpeed super maxSpeed TODO Auto generated constructor stub Override public void stop TODO Auto generated method stub if maxSpeed 300 System out println 停車 class QQ extends Car public QQ int maxSpeed super maxSpeed Override public void stop if maxSpeed 120 System out println 停車 11 下面程序運(yùn)行后的輸出是什么 class ThisClass public static void main String args Object o Object new ThisClass Object s new Object if o equals s System out println true 答 沒(méi)有任何輸出 因?yàn)?o equals s 的結(jié)果為 false 這是兩個(gè)不同的對(duì)象 12 指出下面程序運(yùn)行后的結(jié)果 class C1 static int j 0 public void method int a j class Test extends C1 public int method return j public void result 134 method j System out println j method public static void main String args new Test result 答 結(jié)果是 2 13 下面程序編譯運(yùn)行的結(jié)果是什么 interface Action int i 10 class Happy implements Action public static void main String args Happy h new Happy int j j Action i j Happy i j h i 答 j的值為 10 14 在 java util 包中有一接口 Comparator 提供了比較器的功能 請(qǐng)根據(jù)此接口定義的比 較方法 針對(duì) Account 中的 id 和余額兩個(gè)字段 完成兩個(gè)比較器類的定義 并改寫程 序 7 4 驗(yàn)證你的設(shè)計(jì)是否正確 一個(gè)實(shí)現(xiàn)了Comparable接口的Account類 按ID進(jìn)行比較 import java util Arrays public class Account2 implements Comparable private String id 賬戶id 唯一性的標(biāo)識(shí) private String name 賬戶擁有人的姓名 private int balance 余額 public Account2 String id String name int balance this id id this name name this balance balance 取款的方法 返回本次取出的金額 如果為0 表示余額不足 public int withdraw int amount int result 0 if this balance amount this balance this balance amount result amount return result public int getBalance return this balance public void setBalance int balance this balance balance 135 public String getId return id toString方法覆蓋了來(lái)自根類Object的方法 Override public String toString return Account id id name name balance balance compareTo方法覆蓋了來(lái)自接口的方法 Override public int compareTo Object o int result 0 這里忽略了o的類型不是Account的情況 Account2 t Account2 o 利用字符串對(duì)象自身的compareTo 方法作為賬戶大小的比較 return pareTo t getId public static void main String args Account2 accounts new Account2 5 accounts 0 new Account2 001 王峰 1000 accounts 1 new Account2 002 張靜 1500 accounts 2 new Account2 004 翟宇 660 accounts 3 new Account2 003 魯寧 800 accounts 4 new Account2 005 劉新 1700 Arrays sort accounts for int i 0 i amount this balance this balance amount result amount return result public int getBalance return this balance 136 public void setBalance int balance this balance balance public String getId return id toString方法覆蓋了來(lái)自根類Object的方法 Override public String toString return Account id id name name balance balance compareTo方法覆蓋了來(lái)自接口的方法 Override public int compareTo Object o int result 0 這里忽略了o的類型不是Account的情況 Account3 t Account3 o 利用字符串對(duì)象自身的compareTo 方法作為賬戶大小的比較 return this balance t getBalance public static void main String args Account3 acc
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年寧夏高校畢業(yè)生“三支一扶”招募考試試題【答案】
- 消費(fèi)電子和綠色家電更新消費(fèi)市場(chǎng)調(diào)研與分析
- 礦服務(wù)站安全述職報(bào)告范文
- 消防應(yīng)急救援實(shí)戰(zhàn)演練方案
- 湘藝版四年級(jí)上冊(cè)音樂(lè)《卓瑪》教案
- 2025年血液灌流吸附器項(xiàng)目建議書(shū)
- 2025年P(guān)A9T合作協(xié)議書(shū)
- 技術(shù)進(jìn)步與教育法規(guī)的互動(dòng)關(guān)系研究
- 提升教育數(shù)據(jù)安全保障學(xué)生隱私權(quán)益
- 中職文秘課件
- GB/T 29776-2013紡織品防蟲(chóng)蛀性能的測(cè)定
- DB32T 4176-2021 公共建筑室內(nèi)空氣質(zhì)量監(jiān)測(cè)系統(tǒng)技術(shù)規(guī)程
- 中俄文一般貿(mào)易合同范本
- 不合格品退貨處理單
- 大連海事大學(xué)畢業(yè)成績(jī)表
- 尾礦庫(kù)模施袋筑壩工藝在施工中的應(yīng)用
- 中國(guó)34個(gè)省級(jí)行政區(qū)輪廓圖
- 人教版三年級(jí)下冊(cè)數(shù)學(xué)(全冊(cè))同步隨堂練習(xí)一課一練
- 肺小結(jié)節(jié)定位和肺段切除規(guī)劃PPT學(xué)習(xí)課件
- 精品專題資料(2022-2023年收藏)國(guó)家電網(wǎng)公司智能電網(wǎng)知識(shí)競(jìng)賽題目
評(píng)論
0/150
提交評(píng)論