Java初級(jí)教程第七章面向?qū)ο?ppt
《Java初級(jí)教程第七章面向?qū)ο?ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《Java初級(jí)教程第七章面向?qū)ο?ppt(33頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
Java語(yǔ)言基礎(chǔ)第七章面向?qū)ο?static關(guān)鍵字封裝繼承extends方法重寫(xiě)super關(guān)鍵字向上轉(zhuǎn)型向下轉(zhuǎn)型 上章內(nèi)容 多態(tài)包的使用package關(guān)鍵字import關(guān)鍵字抽象類(lèi)abstract關(guān)鍵字接口 本章內(nèi)容 什么是多態(tài)多態(tài)顧名思義即為多種形態(tài)的意思Java中多態(tài)的含義發(fā)送消息給某個(gè)對(duì)象 讓這個(gè)對(duì)象自行決定采用哪種行為響應(yīng)這個(gè)消息子類(lèi)對(duì)象的引用賦值給父類(lèi)引用變量來(lái)實(shí)現(xiàn)動(dòng)態(tài)的方法調(diào)用Java中形成多態(tài)的前提繼承重寫(xiě)向上轉(zhuǎn)型 多態(tài)的概念 多態(tài)的應(yīng)用 動(dòng)物園有這些動(dòng)物 狗 兔子等 飼養(yǎng)員每天都會(huì)給這些動(dòng)物喂食 狗喜歡吃骨頭 而兔子喜歡吃胡蘿卜 通過(guò)Java程序模擬飼養(yǎng)員喂食參考代碼 案例 Animal java 案例 Food java 案例 Rabbit java Dog java 案例 Carrot java Bone java 多態(tài)的應(yīng)用 提高代碼的可重用性降低模塊之間的耦合度 多態(tài)的作用 形狀類(lèi)Shape需要提供用于計(jì)算面積和周長(zhǎng)的方法 但是形狀本身沒(méi)有被確定 那么計(jì)算周長(zhǎng)和面積的方法就無(wú)法確定 此時(shí)我們就需要使用抽象類(lèi)和抽象方法 由于Shape類(lèi)計(jì)算周長(zhǎng)和面積的方法無(wú)法確定 那么就可以將這樣的方法聲明為抽象的 以便在具體的子類(lèi)中進(jìn)行實(shí)現(xiàn) 抽象方法的聲明 修飾符 abstract返回值類(lèi)型方法名 參數(shù)列表 注意 因?yàn)槌橄蠓椒o(wú)法確定具體執(zhí)行的功能 所有抽象方法沒(méi)有方法體 需要在小括號(hào)后加上分號(hào) 抽象類(lèi)和抽象方法 抽象方法 如果一個(gè)類(lèi)的某些功能比較抽象或者無(wú)法在本類(lèi)中具體實(shí)現(xiàn) 可以將這個(gè)類(lèi)聲明為抽象的 那么這些抽象或者無(wú)法具體實(shí)現(xiàn)的功能可以在子類(lèi)中完成 抽象類(lèi)的語(yǔ)法 修飾符 abstractclass類(lèi)名 extends父類(lèi)名 類(lèi)體 抽象類(lèi)和普通類(lèi)除了使用abstract修飾外和普通的類(lèi)相似抽象類(lèi)中可以沒(méi)有抽象方法但是一旦某個(gè)有抽象方法 那么這個(gè)類(lèi)必須被聲明為抽象類(lèi) 抽象類(lèi) 抽象類(lèi) 因?yàn)槌橄箢?lèi)不是一個(gè)具體的類(lèi) 所以無(wú)法實(shí)例化 但是抽象類(lèi)可以用于聲明對(duì)象 抽象類(lèi) 抽象類(lèi)可以被繼承 在子類(lèi)中實(shí)現(xiàn)抽象類(lèi)的所有抽象方法 以達(dá)到抽象類(lèi)的具體化 抽象類(lèi) 具體化后的子類(lèi)方法就可以用來(lái)創(chuàng)建對(duì)象了 抽象類(lèi) 在軟件工程中 經(jīng)常將一個(gè)大的項(xiàng)目分由不同的開(kāi)發(fā)小組共同開(kāi)發(fā) 各個(gè)小組的開(kāi)發(fā)工作是并行的 在很多時(shí)候 對(duì)于不同小組的程序員來(lái)說(shuō) 清楚地說(shuō)明各自的軟件如何相互作用 并就此達(dá)成統(tǒng)一 約定 是很重要的 這種情況下 每一小組都可以在對(duì)其他小組怎么編寫(xiě)代碼一無(wú)所知的情況下 就能編寫(xiě)自己的代碼 并且各自小組編寫(xiě)的代碼能很好的協(xié)同工作 接口就是這樣的 約定 接口 在Java中接口不僅僅是程序開(kāi)發(fā)過(guò)程中 約定 更是更加抽象化的抽象類(lèi)接口的定義 修飾符 interface接口名 常量 抽象方法 接口的定義 接口的實(shí)現(xiàn)定義類(lèi)時(shí)通過(guò)implements關(guān)鍵字實(shí)現(xiàn)接口接口實(shí)現(xiàn)的語(yǔ)法 修飾符 class類(lèi)名 extends父類(lèi)名 implements接口1 接口2 類(lèi)體部分 接口的實(shí)現(xiàn) 一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口 從而解決了Java單繼承的缺點(diǎn) 接口的實(shí)現(xiàn) 在Java中類(lèi)之間的繼承關(guān)系是單繼承 也就是說(shuō)一個(gè)類(lèi)有且只能有一個(gè)父類(lèi) 而Java中的接口實(shí)現(xiàn)了多繼承 也就是說(shuō)一個(gè)接口可以有多個(gè)父接口 接口的繼承 提高程序的重用性提高程序的可擴(kuò)展性降低程序的耦合度實(shí)現(xiàn)了多繼承 接口的作用 實(shí)現(xiàn)多繼承 接口的作用 實(shí)現(xiàn)了多繼承 接口的作用 降低程序耦合度 接口的作用 降低耦合度 接口的作用 什么是包包是Java用于提供訪問(wèn)保護(hù)和命名空間管理的方式簡(jiǎn)單的理解 包就是用來(lái)將Java中類(lèi)和接口等進(jìn)行分類(lèi)管理的工具 類(lèi)似于操作系統(tǒng)中的目錄包的聲明package包名 包名的前半部分一般使用倒置的域名 后半部分一般采用該包下類(lèi)分類(lèi)名 或者功能名 如 packagecom sina util 包的聲明必須是整個(gè)類(lèi)文件的第一行語(yǔ)句 包的使用 聲明包 一旦需要使用另外一個(gè)包中的類(lèi)時(shí) 需要將該類(lèi)導(dǎo)入到當(dāng)前類(lèi)中 如需要在程序中使用java util包下的Scanner類(lèi) 需要將給類(lèi)先導(dǎo)入到使用的類(lèi)中類(lèi)導(dǎo)入的語(yǔ)法import包名 類(lèi)名 或者import包名 包的導(dǎo)入 導(dǎo)入類(lèi) instanceof運(yùn)算符的使用用于判斷一個(gè)對(duì)象是不是某個(gè)類(lèi)的實(shí)例 instanceof運(yùn)算符 多態(tài)包的使用package關(guān)鍵字import關(guān)鍵字抽象類(lèi)abstract關(guān)鍵字final關(guān)鍵字接口interface關(guān)鍵字implements關(guān)鍵字 本章總結(jié) 作業(yè)一設(shè)計(jì)一個(gè)臺(tái)燈類(lèi)Lamp其中臺(tái)燈有燈泡這個(gè)屬性 還有開(kāi)燈 on 這個(gè)方法 設(shè)計(jì)一個(gè)燈泡類(lèi)其中有紅燈泡 RedBuble 和綠燈泡 GreenBuble 他們都有一個(gè)發(fā)亮的方法 請(qǐng)?jiān)O(shè)計(jì)出一段代碼可以使臺(tái)燈開(kāi)啟燈泡發(fā)亮 并且保證替換不同種類(lèi)的燈泡臺(tái)燈類(lèi)代碼不被修改 作業(yè)二 設(shè)計(jì)一個(gè)繼承關(guān)系其中存在動(dòng)物類(lèi)Animal 狗類(lèi)Dog和貓類(lèi)Cat 對(duì)于貓類(lèi)和狗類(lèi)都有一個(gè)吃eat方法 但是貓和狗的吃eat方法的實(shí)現(xiàn)不同 請(qǐng)合理的設(shè)計(jì)出AnimalDogCat這3個(gè)類(lèi)關(guān)系 作業(yè) 作業(yè)三 設(shè)計(jì)一個(gè)形狀類(lèi) 接口 Shape 方法 求周長(zhǎng)和求面積形狀類(lèi) 接口 的子類(lèi) 實(shí)現(xiàn)類(lèi) Rect 矩形 Circle 圓形 Rect類(lèi)的子類(lèi) Square 正方形 不同的子類(lèi)會(huì)有不同的計(jì)算周長(zhǎng)和面積的方法創(chuàng)建三個(gè)不同的形狀對(duì)象 放在Shape類(lèi)型的數(shù)組里 分別打印出每個(gè)對(duì)象的周長(zhǎng)和面積 作業(yè) 作業(yè)四 某公司的雇員分為以下若干類(lèi) Employee 這是所有員工總的父類(lèi) 屬性 員工的姓名 員工的生日月份 方法 getSalary intmonth 根據(jù)參數(shù)月份來(lái)確定工資 如果該月員工過(guò)生日 則公司會(huì)額外獎(jiǎng)勵(lì)100元 SalariedEmployee Employee的子類(lèi) 拿固定工資的員工 屬性 月薪HourlyEmployee Employee的子類(lèi) 按小時(shí)拿工資的員工 每月工作超出160小時(shí)的部分按照1 5倍工資發(fā)放 屬性 每小時(shí)的工資 每月工作的小時(shí)數(shù)SalesEmployee Employee的子類(lèi) 銷(xiāo)售人員 工資由月銷(xiāo)售額和提成率決定 屬性 月銷(xiāo)售額 提成率BasePlusSalesEmployee SalesEmployee的子類(lèi) 有固定底薪的銷(xiāo)售人員 工資由底薪加上銷(xiāo)售提成部分 屬性 底薪 寫(xiě)一個(gè)程序 把若干各種類(lèi)型的員工放在一個(gè)Employee數(shù)組里 寫(xiě)一個(gè)方法 打印出某月每個(gè)員工的工資數(shù)額 注意 要求把每個(gè)類(lèi)都做成完全封裝 不允許非私有化屬性 作業(yè)- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- Java 初級(jí)教程 第七 面向 對(duì)象
鏈接地址:http://www.szxfmmzy.com/p-6359809.html