版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、班級(jí): 姓名: 學(xué)號(hào): 成績(jī) 實(shí)驗(yàn)二 Java面向?qū)ο蠹夹g(shù)必做實(shí)驗(yàn)?zāi)康模?. 理解繼承的概念2. 掌握繼承的實(shí)現(xiàn)3. 理解繼承中的覆蓋現(xiàn)象4. 理解抽象類(lèi)的概念,掌握定義抽象類(lèi)的方法和應(yīng)用5. 掌握接口的定義和實(shí)現(xiàn)接口的方法實(shí)驗(yàn)數(shù)據(jù)記錄及分析(或程序及運(yùn)行結(jié)果)1. 按照要求完成程序:1) 聲明一個(gè)圖形類(lèi)(Shape),含有一個(gè)成員變量color(字符串類(lèi)型),一個(gè)無(wú)參構(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è)圓形類(lèi)(Circle)繼承自圖形類(lèi),含有一個(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è)矩形類(lèi)(Rectangle)繼承自圖形,含有兩個(gè)double類(lèi)型的成員變量長(zhǎng)a和寬b;有一個(gè)有三個(gè)參數(shù)的構(gòu)造方法用于初始化顏色、長(zhǎng)和寬;一個(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è)圖形工廠類(lèi)型,內(nèi)含一個(gè)createShape方法,根據(jù)用戶(hù)輸入的圖形類(lèi)型的名稱(chēng),進(jìn)而提示輸入相應(yīng)信息生成圖形對(duì)象。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("請(qǐng)輸入圓形的半徑:");double r = sc.nextDouble();return new Circle(r); else if (shape.equalsIgnoreCase("Rectangle") System.out.print
8、ln("請(qǐng)輸入矩形的寬和高:");double w = sc.nextDouble();double h = sc.nextDouble();return new Rectangle(w, h); else return null;5) 聲明一個(gè)測(cè)試類(lèi)(TestShape):不斷詢(xún)問(wèn)用戶(hù)欲生成圖形類(lèi)型的名稱(chēng),由圖形工廠創(chuàng)建相應(yīng)圖形類(lèi)型,并打印相應(yīng)圖形的詳細(xì),直到用戶(hù)輸入quit為止。import java.util.Scanner;public class TestShape public static void main(String args) Scanner sc =
9、 new Scanner(System.in);System.out.println("請(qǐng)輸入欲創(chuàng)建圖形的名稱(chēng)(Circle或Rectangle):");String name;while (sc.hasNextLine() name = sc.nextLine();Shape s = ShapeFactory.createShape(name);System.out.println(s);System.out.println("請(qǐng)輸入欲創(chuàng)建圖形的名稱(chēng)(Circle或Rectangle):");2. 根據(jù)要求完成程序:1) 定義名稱(chēng)為PCI的接口,包括啟
10、動(dòng)方法start和關(guān)閉方法stop;public interface PCI void start();void stop();2) 定義名稱(chēng)為NetworkCard 的類(lèi)表示網(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) 定義名稱(chēng)為SoundCard 的類(lèi)表示聲卡,實(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) 定義名稱(chēng)為MainBoard 的類(lèi)表示主板,包含方法publi
12、c void startPCICard(PCI p),在方法體內(nèi)通過(guò)p來(lái)啟動(dòng)組件;包含方法public void stopPCICard(PCI p),在方法體內(nèi)通過(guò)p來(lái)關(guān)閉組件;public class MainBoard public void startPCICard(PCI p) p.start();public void stopPCICard(PCI p) p.stop();5) 定義一個(gè)包含main方法的Test類(lèi),在main方法內(nèi)創(chuàng)建一個(gè)MainBoard 對(duì)象(用mb來(lái)引用),創(chuàng)建一個(gè)NetworkCard對(duì)象,通過(guò)mb分別啟動(dòng)和停止聲卡;創(chuàng)建一個(gè)SoundCard對(duì)象,通過(guò)
13、mb分別啟動(dòng)和停止網(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. 按照要求完成程序(知識(shí)點(diǎn):子類(lèi)的構(gòu)造方法一定會(huì)調(diào)用父類(lèi)的構(gòu)造方法)public class Testpublic static
14、 void main(String args)System.out.println("創(chuàng)建父類(lèi)對(duì)象:");SuperClass sc0 = new SuperClass();System.out.println("n創(chuàng)建第一個(gè)子類(lèi)對(duì)象:");SubClass sc1 = new SubClass();System.out.println("n創(chuàng)建第二個(gè)子類(lèi)對(duì)象:");SubClass sc2 = new SubClass(1);class SuperClassSuperClass( )System.out.println("
15、父類(lèi)的構(gòu)造函數(shù)");class SubClass extends SuperClassSubClass( )/super();System.out.println("子類(lèi)的第一個(gè)構(gòu)造函數(shù)");SubClass(int i)/super();System.out.println("子類(lèi)的第二個(gè)構(gòu)造函數(shù)");寫(xiě)出程序的運(yùn)行結(jié)果:子類(lèi)構(gòu)造函數(shù)若沒(méi)有顯式調(diào)用父類(lèi)構(gòu)造函數(shù),則隱含調(diào)用父類(lèi)無(wú)參構(gòu)造函數(shù),上面代碼等價(jià)如下代碼:public class Testpublic static void main(String args)System.out.pri
16、ntln("創(chuàng)建父類(lèi)對(duì)象:");SuperClass sc0 = new SuperClass();System.out.println("n創(chuàng)建第一個(gè)子類(lèi)對(duì)象:");SubClass sc1 = new SubClass();class SuperClassSuperClass( )System.out.println("父類(lèi)的構(gòu)造函數(shù)");class SubClass extends SuperClassSubClass( ) super();System.out.println("子類(lèi)的第一個(gè)構(gòu)造函數(shù)");S
17、ubClass(int i) super();System.out.println("子類(lèi)的第二個(gè)構(gòu)造函數(shù)");所以得出如下結(jié)果:創(chuàng)建父類(lèi)對(duì)象:父類(lèi)的構(gòu)造函數(shù)創(chuàng)建第一個(gè)子類(lèi)對(duì)象:父類(lèi)的構(gòu)造函數(shù)子類(lèi)的第一個(gè)構(gòu)造函數(shù)創(chuàng)建第二個(gè)子類(lèi)對(duì)象:父類(lèi)的構(gòu)造函數(shù)子類(lèi)的第二個(gè)構(gòu)造函數(shù)要求:去掉SubClass的所有構(gòu)造函數(shù),然后將Test類(lèi)中main方法的最后兩行語(yǔ)句刪除。預(yù)測(cè)修改后程序的運(yùn)行結(jié)果,并進(jìn)行驗(yàn)證。public class Testpublic static void main(String args)System.out.println("創(chuàng)建父類(lèi)對(duì)象:")
18、;SuperClass sc0 = new SuperClass();System.out.println("n創(chuàng)建第一個(gè)子類(lèi)對(duì)象:");SubClass sc1 = new SubClass();class SuperClassSuperClass( )System.out.println("父類(lèi)的構(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)建父類(lèi)對(duì)象:")
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度智能煤炭交易平臺(tái)居間合作協(xié)議4篇
- 2025年度全球跨境陸運(yùn)貨物綜合保險(xiǎn)合同4篇
- 二零二五年度校園足球場(chǎng)草坪鋪設(shè)與青少年體育發(fā)展合同2篇
- 2025年校園監(jiān)控設(shè)備校園特殊時(shí)段監(jiān)控服務(wù)合同3篇
- 2025年水庫(kù)漁業(yè)資源承包合作協(xié)議范本3篇
- 2025年度二零二五版跨平臺(tái)媒體內(nèi)容合作協(xié)議范本4篇
- 二零二五年度人工智能研發(fā)與系統(tǒng)集成合同4篇
- 二零二五年度高空作業(yè)安全員資質(zhì)認(rèn)證及服務(wù)合同2篇
- 2025年行業(yè)領(lǐng)先銷(xiāo)售合同流程圖模板及實(shí)施手冊(cè)2篇
- 二零二五年度港口碼頭環(huán)保設(shè)施投資合作協(xié)議4篇
- 工業(yè)自動(dòng)化設(shè)備維護(hù)保養(yǎng)指南
- 2024人教新版七年級(jí)上冊(cè)英語(yǔ)單詞英譯漢默寫(xiě)表
- 《向心力》參考課件4
- 2024至2030年中國(guó)膨潤(rùn)土行業(yè)投資戰(zhàn)略分析及發(fā)展前景研究報(bào)告
- 2024年深圳中考數(shù)學(xué)真題及答案
- 土方轉(zhuǎn)運(yùn)合同協(xié)議書(shū)
- Module 3 Unit 1 Point to the door(教學(xué)設(shè)計(jì))-2024-2025學(xué)年外研版(三起)英語(yǔ)三年級(jí)上冊(cè)
- 智能交通信號(hào)燈安裝合同樣本
- 安全生產(chǎn)法律法規(guī)清單(2024年5月版)
- 江蘇省連云港市2023-2024學(xué)年八年級(jí)下學(xué)期期末道德與法治試卷(含答案解析)
- 2024年大學(xué)試題(宗教學(xué))-佛教文化筆試考試歷年高頻考點(diǎn)試題摘選含答案
評(píng)論
0/150
提交評(píng)論