




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.第八章類和對(duì)象的擴(kuò)展【實(shí)驗(yàn)?zāi)康摹?1) 類的繼承a. 掌握父類及子類的關(guān)系及創(chuàng)建方法b. 掌握上轉(zhuǎn)型對(duì)象的使用方法c. 掌握子類對(duì)象創(chuàng)建過程中與父類構(gòu)造方法的關(guān)系,及super關(guān)鍵字的用法(2) 多態(tài)與接口a. 掌握抽象類與抽象方法的概念b. 掌握多態(tài)的實(shí)現(xiàn)原理及方法c. 了解成員變量的隱藏d. 掌握接口的設(shè)計(jì)方法【實(shí)驗(yàn)范例】例1:(繼承)(1)編寫一個(gè)圓類Circle,該類擁有:一個(gè)成員變量Radius(私有,浮點(diǎn)型);/ 存放圓的半徑;兩個(gè)構(gòu)造方法Circle( ) / 將半徑設(shè)為0 Circle(double r )/創(chuàng)建Circle對(duì)象時(shí)將半徑初始化為r 三個(gè)成員方法double g
2、etArea( ) /獲取圓的面積double getPerimeter( ) /獲取圓的周長(zhǎng)void show( ) /將圓的半徑、周長(zhǎng)、面積輸出到屏幕(2)編寫一個(gè)圓柱體類Cylinder,它繼承于上面的Circle類。還擁有:一個(gè)成員變量double hight(私有,浮點(diǎn)型);/ 圓柱體的高;構(gòu)造方法Cylinder (double r, double h ) /創(chuàng)建Circle對(duì)象時(shí)將半徑初始化為r 成員方法double getVolume( ) /獲取圓柱體的體積void showVolume( ) /將圓柱體的體積輸出到屏幕編寫應(yīng)用程序,創(chuàng)建類的對(duì)象,分別設(shè)置圓的半徑、圓柱體的高
3、,計(jì)算并分別顯示圓半徑、圓面積、圓周長(zhǎng),圓柱體的體積。程序代碼:class Circle / 定義父類-園類private double radius; / 成員變量-園半徑Circle() / 構(gòu)造方法radius = 0.0;Circle(double r) / 構(gòu)造方法radius = r;double getPerimeter() / 成員方法-求園周長(zhǎng)return 2 * Math.PI * radius;double getArea() / 成員方法-求園面積return Math.PI * radius * radius;void disp() / 成員方法-顯示園半徑、周長(zhǎng)、面
4、積System.out.println(圓半徑= + radius);System.out.println(圓周長(zhǎng)= + getPerimeter();System.out.println(圓面積= + getArea();class Cylinder extends Circle / 定義子類-圓柱類private double hight; / 成員變量-園柱高Cylinder(double r, double h) / 構(gòu)造方法super(r);hight = h;public double getVol() / 成員方法-求園柱體積return getArea() * hight;pu
5、blic void dispVol() / 成員方法-顯示園柱體積System.out.println(圓柱體積= + getVol();public class Prog1 / 定義主類public static void main(String args) / 主程入口Circle Ci = new Circle(10.0); / 生成園類實(shí)例Ci.disp(); / 調(diào)用園類的方法Cylinder Cyl = new Cylinder(5.0, 10.0); / 生成圓柱類實(shí)例Cyl.disp(); / 調(diào)用父類方法Cyl.dispVol(); / 調(diào)用子類方法例2:(重載)設(shè)計(jì)一個(gè)汽車
6、類Multiplication,在其中定義三個(gè)同名的mul方法:第一個(gè)方法是計(jì)算兩個(gè)整數(shù)的積;第二個(gè)方法是計(jì)算兩個(gè)浮點(diǎn)數(shù)的積;第三個(gè)方法是計(jì)算三個(gè)浮點(diǎn)數(shù)的積。程序代碼:class Multiplication public void mul(int a, int b) int m = a * b;System.out.println(a + * + b + = + m);public void mul(double a, double b) float m = (float) (a * b);System.out.println(a + * + b + = + m);public void m
7、ul(double a, double b, double c) double m = a * b * c;System.out.println(a + * + b + * + c + = + m);public class Prog1 public static void main(String args) Multiplication test = new Multiplication();test.mul(3, 4);test.mul(2.3, 3);test.mul(3, 4, 5);例3:(接口與多態(tài))(1) 定義一個(gè)接口CanFly,描述會(huì)飛的方法public void fly()
8、;(2) 分別定義類飛機(jī)和鳥,實(shí)現(xiàn)CanFly接口。(3) 定義一個(gè)測(cè)試類,測(cè)試飛機(jī)和鳥。測(cè)試類中定義一個(gè)makeFly()方法,讓會(huì)飛的事物飛起來。(4) 然后在main方法中創(chuàng)建飛機(jī)對(duì)象和鳥對(duì)象,并在main方法中調(diào)用makeFly()方法,讓飛機(jī)和鳥起飛。程序代碼:interface CanFly public void fly();class AirPlane implements CanFly public void fly() System.out.println(airplane is flying);class Bird implements CanFly public voi
9、d fly() System.out.println(Bird is flying);class Prog1 static void makeFly(CanFly obj) obj.fly();public static void main(String args) AirPlane ap = new AirPlane();Bird b = new Bird();makeFly(ap);makeFly(b);【綜合例子】例:在第七章綜合例子的基礎(chǔ)上,編寫一個(gè)VIP賬號(hào)的管理要求:1、VIPAccount繼承Account2、VIP設(shè)置3個(gè)等級(jí):VIP0:一般賬戶,不能透支VIP1:透支上限30
10、00元VIP2:透支上限10000元1、 根據(jù)透支情況,重寫withdraw()方法(重寫)2、 兩個(gè)構(gòu)造函數(shù),一個(gè)與父類Account構(gòu)造函數(shù)的參數(shù)相同,另外一個(gè)參數(shù)增加設(shè)置對(duì)象的VIP等級(jí)(重載)實(shí)現(xiàn)簡(jiǎn)單的循環(huán)菜單顯示,并實(shí)現(xiàn)存|取款、修改密碼、顯示賬戶余額等功能(實(shí)現(xiàn)的功能和第七章的綜合例子相同)import java.util.Scanner;class Account int custID;String custName;int custPWD;double custMoney;Account(int id, String name, int PWD, double money) c
11、ustID = id;custName = name;custPWD = PWD;custMoney = money;void displayAccout() System.out.println(賬號(hào): + custID);System.out.println(戶名: + custName);System.out.println(余額: + custMoney);boolean deposit(double money)custMoney += money;return true;boolean withdraw(double money)if (custMoneymoney) return
12、 false;elsecustMoney -= money;return true;void changePWD(int PWD)custPWD = PWD;class VIPAccount extends Accountint VIPLevel;/VIP特權(quán),透支金額分3個(gè)等級(jí)為VIP0:一般客戶,不能透支,VIP1:3000,VIP2:10000VIPAccount (int id, String name, int PWD, double money) /構(gòu)造函數(shù)重載super(id,name,PWD,money);VIPAccount (int id, String name, int
13、 PWD, double money, int level) /構(gòu)造函數(shù)重載super(id,name,PWD,money);VIPLevel = level;void setVIPLevel(int level) VIPLevel = level;boolean withdraw(double money) /函數(shù)重寫double remain = custMoney - money;switch (VIPLevel)case 0:if (remain 0) System.out.println(您不是VIP客戶,不能透支!您目前的余額為: + custMoney);return false
14、; else custMoney -= money;System.out.println(取款成功,您目前的余額為: + custMoney);return true;case 1:if (remain -3000) System.out.println(您的VIP等級(jí)為1,透支額度不能抽過3000元,您目前的余額為: + custMoney);return false; else custMoney -= money;System.out.println(取款成功,您目前的余額為: + custMoney);return true;case 2:if (remain -10000) Syst
15、em.out.println(您的VIP等級(jí)為2,透支額度不能抽過10000元,您目前的余額為: + custMoney);return false; else custMoney -= money;System.out.println(取款成功,您目前的余額為: + custMoney);return true;return true;public class CustDemo public static void main(String args) VIPAccount cust = new VIPAccount4;cust0 = new VIPAccount(1001, Tom, 111
16、, 400.0f, 0);cust1 = new VIPAccount(1002, Mike, 222, 500.0f, 1);cust2 = new VIPAccount(1003, Bob, 333, 600.0f, 2);cust3 = new VIPAccount(1004, Cindy, 444, 100.0f, 1);int ind = 0;double money;System.out.println(請(qǐng)輸入賬號(hào):);Scanner sc = new Scanner(System.in);long id = sc.nextLong();for (int i=0; i4; i+)i
17、f (custi.custID = id) ind=i;while (true) System.out.println(n1.存款);System.out.println(2.取款);System.out.println(3.修改密碼);System.out.println(4.查詢);System.out.println(5.退出);sc = new Scanner(System.in);switch(sc.nextInt() case 1:System.out.println(請(qǐng)輸入存款金額:);money = sc.nextDouble();custind.deposit(money);
18、custind.displayAccout();break;case 2:System.out.println(請(qǐng)輸入取款金額:);money = sc.nextDouble();if (custind.withdraw(money) custind.displayAccout();else System.out.println(您的賬號(hào)余額不足!);break;case 3:System.out.println(請(qǐng)輸入新密碼:); custind.custPWD = sc.nextInt();break;case 4:custind.displayAccout(); break;case 5
19、:System.out.println(歡迎使用xxx銀行系統(tǒng)!); System.exit(1);【練習(xí)題目】8-1 (繼承與多態(tài))有哺乳動(dòng)物類mammal,將其作為父類,從其派生出子類貓cat和子類狗dog,基類中有方法speak()。8-2 (重載)編寫一個(gè)Java應(yīng)用程序,從鍵盤讀取用戶輸入兩個(gè)字符串,并重載3個(gè)strAdd函數(shù)分別實(shí)現(xiàn)這兩個(gè)字符串的拼接、整數(shù)相加和浮點(diǎn)數(shù)相加。要進(jìn)行異常處理,對(duì)輸入的不符合要求的字符串提示給用戶,不能使程序崩潰。(異常處理)8-3 (接口)1.利用接口繼承完成對(duì)生物、動(dòng)物、人三個(gè)接口的定義。其中生物接口定義呼吸抽象方法;2.動(dòng)物接口除具備生物接口特征之外,還定義了吃飯和睡覺兩個(gè)抽象方法;3.人接口除具備動(dòng)物接口特征外,還定義了思維和學(xué)習(xí)兩個(gè)抽象方法。4.定義一個(gè)學(xué)生類實(shí)現(xiàn)上述人接口。8-4 (繼承、接口)實(shí)現(xiàn)一個(gè)名為Person的類和它的子類Employee,Manager是Employee的子類,設(shè)計(jì)一個(gè)接口Wage,用于漲工資,普通員工一次能漲10,經(jīng)理能漲20。具體要求如下:(1)接口Wage包含addWage方法,創(chuàng)建類WageImpl用于實(shí)現(xiàn)接口Wage(2)Person類中的屬性有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 1水到哪里去了 教學(xué)設(shè)計(jì)-2024-2025學(xué)年科學(xué)三年級(jí)上冊(cè)教科版
- 《第2節(jié) 元件及漸變動(dòng)畫》教學(xué)設(shè)計(jì) -2023-2024學(xué)年北師大版初中信息技術(shù)八年級(jí)下冊(cè)
- 第五單元寫話:商量(教學(xué)設(shè)計(jì))-2024-2025學(xué)年二年級(jí)語文上冊(cè)單元作文能力提升(統(tǒng)編版)
- 2024北京糧香四溢科技有限責(zé)任公司公開招聘3人筆試參考題庫附帶答案詳解
- 第六章 幾何圖形初步教學(xué)設(shè)計(jì)-2024-2025學(xué)年人教版數(shù)學(xué)七年級(jí)上冊(cè)
- 江蘇省蘇南八校2023-2024學(xué)年高二上學(xué)期12月聯(lián)考地理試題(解析版)
- 2《我學(xué)習(xí)我快樂》教學(xué)設(shè)計(jì)-2024-2025學(xué)年道德與法治三年級(jí)上冊(cè)統(tǒng)編版
- 湖北省十堰市2023-2024學(xué)年高二上學(xué)期1月期末調(diào)研考試地理試卷(解析版)
- 人教版六年級(jí)下(全冊(cè))教學(xué)設(shè)計(jì)(表格式)
- 太陽能熱電聯(lián)產(chǎn)系統(tǒng)集成與設(shè)計(jì)方案
- 東南亞潤(rùn)滑油市場(chǎng)研究報(bào)告和展望
- 煤礦安全知識(shí)300問 煤礦職工每日一題
- 《0-3歲嬰幼兒教育》課程教學(xué)大綱
- 2023年廣東醫(yī)科大學(xué)專插本中藥學(xué)真題
- GB/T 5392-2004林業(yè)機(jī)械油鋸技術(shù)條件
- GB/T 26535-2011國(guó)家重要濕地確定指標(biāo)
- GA/T 1133-2014基于視頻圖像的車輛行駛速度技術(shù)鑒定
- 食品安全 PPT課件7農(nóng)獸藥化學(xué)性污染對(duì)食品安全性的影響
- 介入科人員崗位職責(zé)
- 病死畜禽無害化處理課件
- ncast課錄播系統(tǒng)簡(jiǎn)介
評(píng)論
0/150
提交評(píng)論