版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、班級: 姓名: 學(xué)號: 成績 實(shí)驗(yàn)二 Java面向?qū)ο蠹夹g(shù)必做實(shí)驗(yàn)?zāi)康模?. 理解繼承的概念2. 掌握繼承的實(shí)現(xiàn)3. 理解繼承中的覆蓋現(xiàn)象4. 理解抽象類的概念,掌握定義抽象類的方法和應(yīng)用5. 掌握接口的定義和實(shí)現(xiàn)接口的方法實(shí)驗(yàn)數(shù)據(jù)記錄及分析(或程序及運(yùn)行結(jié)果)1. 按照要求完成程序:1) 聲明一個(gè)圖形類(Shape),含有一個(gè)成員變量color(字符串類型),一個(gè)無參構(gòu)造方法,一個(gè)有一個(gè)字符串參數(shù)的構(gòu)造方法用于初始化顏色變量,一個(gè)getColor方法返回顏色值,一個(gè)抽象方法getArea獲取圖形面積,一個(gè)toString()方法顯示圖形的詳細(xì)信息。public abstract class
2、Shape String color = "蘭色"public Shape() public Shape(String color) this.color = color;public String getColor() return color;public void setColor(String color) this.color = color;public String toString() return "顏色:" + color + ",面積:" + getArea();public abstract double ge
3、tArea();2) 聲明一個(gè)圓形類(Circle)繼承自圖形類,含有一個(gè)成員變量半徑r;有一個(gè)有兩個(gè)參數(shù)的構(gòu)造方法用于初始化顏色和半徑;一個(gè)getArea方法獲取圓的面積;一個(gè)toString()方法顯示圓形的詳細(xì)信息。public class Circle extends Shape double r;public Circle(String color, double r) super(color);this.r = r;public Circle(double r) this.r = r;public Circle(String color) super(color);public C
4、ircle() public String toString() return "圓形【半徑:" + r + " " + super.toString() + "】"public double getArea() return Math.PI * r * r;3) 聲明一個(gè)矩形類(Rectangle)繼承自圖形,含有兩個(gè)double類型的成員變量長a和寬b;有一個(gè)有三個(gè)參數(shù)的構(gòu)造方法用于初始化顏色、長和寬;一個(gè)getArea方法獲取矩形的面積;一個(gè)toString()方法顯示矩形的詳細(xì)信息。public class Rectangle
5、 extends Shape private double width, height;public Rectangle(String color, double width, double height) super(color);this.width = width;this.height = height;public Rectangle(double width, double height) this.width = width;this.height = height;public Rectangle(double width) this(width, width);public
6、Rectangle() public String toString() return "矩形【寬:" + width + ", 高:" + height + " " + super.toString() + "】"public double getArea() return width * height;4) 聲明一個(gè)圖形工廠類型,內(nèi)含一個(gè)createShape方法,根據(jù)用戶輸入的圖形類型的名稱,進(jìn)而提示輸入相應(yīng)信息生成圖形對象。import java.util.Scanner;public class Shap
7、eFactory public static Shape createShape(String shape) Scanner sc = new Scanner(System.in);if (shape.equalsIgnoreCase("Circle") System.out.println("請輸入圓形的半徑:");double r = sc.nextDouble();return new Circle(r); else if (shape.equalsIgnoreCase("Rectangle") System.out.print
8、ln("請輸入矩形的寬和高:");double w = sc.nextDouble();double h = sc.nextDouble();return new Rectangle(w, h); else return null;5) 聲明一個(gè)測試類(TestShape):不斷詢問用戶欲生成圖形類型的名稱,由圖形工廠創(chuàng)建相應(yīng)圖形類型,并打印相應(yīng)圖形的詳細(xì),直到用戶輸入quit為止。import java.util.Scanner;public class TestShape public static void main(String args) Scanner sc =
9、 new Scanner(System.in);System.out.println("請輸入欲創(chuàng)建圖形的名稱(Circle或Rectangle):");String name;while (sc.hasNextLine() name = sc.nextLine();Shape s = ShapeFactory.createShape(name);System.out.println(s);System.out.println("請輸入欲創(chuàng)建圖形的名稱(Circle或Rectangle):");2. 根據(jù)要求完成程序:1) 定義名稱為PCI的接口,包括啟
10、動方法start和關(guān)閉方法stop;public interface PCI void start();void stop();2) 定義名稱為NetworkCard 的類表示網(wǎng)卡,實(shí)現(xiàn)PCI接口,并且其在實(shí)現(xiàn)start方法時(shí)輸出“sending data”,在實(shí)現(xiàn)stop方法時(shí)輸出“network stop.”public class NetworkCard implements PCI public void start() System.out.println("sending data.");public void stop() System.out.println
11、("network stop");3) 定義名稱為SoundCard 的類表示聲卡,實(shí)現(xiàn)PCI接口;并且其在實(shí)現(xiàn)start方法時(shí)輸出“dudu”,在實(shí)現(xiàn)stop方法時(shí)輸出“sound stop.”public class SoundCard implements PCI public void start() System.out.println("dudu.");public void stop() System.out.println("sound stop");4) 定義名稱為MainBoard 的類表示主板,包含方法publi
12、c void startPCICard(PCI p),在方法體內(nèi)通過p來啟動組件;包含方法public void stopPCICard(PCI p),在方法體內(nèi)通過p來關(guān)閉組件;public class MainBoard public void startPCICard(PCI p) p.start();public void stopPCICard(PCI p) p.stop();5) 定義一個(gè)包含main方法的Test類,在main方法內(nèi)創(chuàng)建一個(gè)MainBoard 對象(用mb來引用),創(chuàng)建一個(gè)NetworkCard對象,通過mb分別啟動和停止聲卡;創(chuàng)建一個(gè)SoundCard對象,通過
13、mb分別啟動和停止網(wǎng)卡。public class Test public static void main(String args) MainBoard mb = new MainBoard();PCI pci;pci = new NetworkCard();mb.startPCICard(pci);mb.stopPCICard(pci);pci = new SoundCard();mb.startPCICard(pci);mb.stopPCICard(pci);3. 按照要求完成程序(知識點(diǎn):子類的構(gòu)造方法一定會調(diào)用父類的構(gòu)造方法)public class Testpublic static
14、 void main(String args)System.out.println("創(chuàng)建父類對象:");SuperClass sc0 = new SuperClass();System.out.println("n創(chuàng)建第一個(gè)子類對象:");SubClass sc1 = new SubClass();System.out.println("n創(chuàng)建第二個(gè)子類對象:");SubClass sc2 = new SubClass(1);class SuperClassSuperClass( )System.out.println("
15、父類的構(gòu)造函數(shù)");class SubClass extends SuperClassSubClass( )/super();System.out.println("子類的第一個(gè)構(gòu)造函數(shù)");SubClass(int i)/super();System.out.println("子類的第二個(gè)構(gòu)造函數(shù)");寫出程序的運(yùn)行結(jié)果:子類構(gòu)造函數(shù)若沒有顯式調(diào)用父類構(gòu)造函數(shù),則隱含調(diào)用父類無參構(gòu)造函數(shù),上面代碼等價(jià)如下代碼:public class Testpublic static void main(String args)System.out.pri
16、ntln("創(chuàng)建父類對象:");SuperClass sc0 = new SuperClass();System.out.println("n創(chuàng)建第一個(gè)子類對象:");SubClass sc1 = new SubClass();class SuperClassSuperClass( )System.out.println("父類的構(gòu)造函數(shù)");class SubClass extends SuperClassSubClass( ) super();System.out.println("子類的第一個(gè)構(gòu)造函數(shù)");S
17、ubClass(int i) super();System.out.println("子類的第二個(gè)構(gòu)造函數(shù)");所以得出如下結(jié)果:創(chuàng)建父類對象:父類的構(gòu)造函數(shù)創(chuàng)建第一個(gè)子類對象:父類的構(gòu)造函數(shù)子類的第一個(gè)構(gòu)造函數(shù)創(chuàng)建第二個(gè)子類對象:父類的構(gòu)造函數(shù)子類的第二個(gè)構(gòu)造函數(shù)要求:去掉SubClass的所有構(gòu)造函數(shù),然后將Test類中main方法的最后兩行語句刪除。預(yù)測修改后程序的運(yùn)行結(jié)果,并進(jìn)行驗(yàn)證。public class Testpublic static void main(String args)System.out.println("創(chuàng)建父類對象:")
18、;SuperClass sc0 = new SuperClass();System.out.println("n創(chuàng)建第一個(gè)子類對象:");SubClass sc1 = new SubClass();class SuperClassSuperClass( )System.out.println("父類的構(gòu)造函數(shù)");class SubClass extends SuperClass 去掉SubClass的所有構(gòu)造函數(shù),上面代碼等價(jià)于如下代碼:public class Testpublic static void main(String args)System.out.println("創(chuàng)建父類對象:")
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于2025年度市場調(diào)研數(shù)據(jù)之分析報(bào)告保密協(xié)議2篇
- 二零二五年度工廠搬遷及設(shè)施重建合同3篇
- 2024網(wǎng)絡(luò)安全保障服務(wù)外包合同
- 2025年度抵押借款房屋租賃期滿續(xù)約合同示范4篇
- 二零二五版校企合作實(shí)習(xí)實(shí)訓(xùn)基地安全教育與保障協(xié)議3篇
- 2025年銷售渠道拓展勞動合同標(biāo)準(zhǔn)范本3篇
- 2025年度個(gè)人買賣房屋交易稅費(fèi)結(jié)算及支付合同4篇
- 2025年度美容院連鎖經(jīng)營合作協(xié)議范本3篇
- 長沙航空職業(yè)技術(shù)學(xué)院《童話名篇研讀》2023-2024學(xué)年第一學(xué)期期末試卷
- 個(gè)人二手物品交易平臺服務(wù)協(xié)議(2024版)3篇
- 2024年采購代發(fā)貨合作協(xié)議范本
- 工業(yè)自動化設(shè)備維護(hù)保養(yǎng)指南
- 《向心力》參考課件4
- 2024至2030年中國膨潤土行業(yè)投資戰(zhàn)略分析及發(fā)展前景研究報(bào)告
- 【地理】地圖的選擇和應(yīng)用(分層練) 2024-2025學(xué)年七年級地理上冊同步備課系列(人教版)
- (正式版)CB∕T 4552-2024 船舶行業(yè)企業(yè)安全生產(chǎn)文件編制和管理規(guī)定
- JBT 14588-2023 激光加工鏡頭 (正式版)
- 2024年四川省成都市樹德實(shí)驗(yàn)中學(xué)物理八年級下冊期末質(zhì)量檢測試題含解析
- 廉潔應(yīng)征承諾書
- 2023年四川省成都市中考物理試卷真題(含答案)
- 泵車述職報(bào)告
評論
0/150
提交評論