版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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. 理解抽象類的概念,掌握定義抽象類的方法和應(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類型的成員變量長(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è)圖形工廠類型,內(nèi)含一個(gè)createShape方法,根據(jù)用戶輸入的圖形類型的名稱,進(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è)試類(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("請(qǐng)輸入欲創(chuà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)建圖形的名稱(Circle或Rectangle):");2. 根據(jù)要求完成程序:1) 定義名稱為PCI的接口,包括啟
10、動(dòng)方法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來啟動(dòng)組件;包含方法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 對(duì)象(用mb來引用),創(chuàng)建一個(gè)NetworkCard對(duì)象,通過mb分別啟動(dòng)和停止聲卡;創(chuàng)建一個(gè)SoundCard對(duì)象,通過
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):子類的構(gòu)造方法一定會(huì)調(diào)用父類的構(gòu)造方法)public class Testpublic static
14、 void main(String args)System.out.println("創(chuàng)建父類對(duì)象:");SuperClass sc0 = new SuperClass();System.out.println("n創(chuàng)建第一個(gè)子類對(duì)象:");SubClass sc1 = new SubClass();System.out.println("n創(chuàng)建第二個(gè)子類對(duì)象:");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)建父類對(duì)象:");SuperClass sc0 = new SuperClass();System.out.println("n創(chuàng)建第一個(gè)子類對(duì)象:");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)建父類對(duì)象:父類的構(gòu)造函數(shù)創(chuàng)建第一個(gè)子類對(duì)象:父類的構(gòu)造函數(shù)子類的第一個(gè)構(gòu)造函數(shù)創(chuàng)建第二個(gè)子類對(duì)象:父類的構(gòu)造函數(shù)子類的第二個(gè)構(gòu)造函數(shù)要求:去掉SubClass的所有構(gòu)造函數(shù),然后將Test類中main方法的最后兩行語句刪除。預(yù)測(cè)修改后程序的運(yùn)行結(jié)果,并進(jìn)行驗(yàn)證。public class Testpublic static void main(String args)System.out.println("創(chuàng)建父類對(duì)象:")
18、;SuperClass sc0 = new SuperClass();System.out.println("n創(chuàng)建第一個(gè)子類對(duì)象:");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)建父類對(duì)象:")
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 洗車設(shè)備運(yùn)輸合同三篇
- 2025年四川省南充市高考地理一診試卷
- 2021年云南省昭通市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2021年安徽省淮南市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2022年廣東省潮州市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2022年廣西壯族自治區(qū)防城港市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2024年吉林省松原市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 陜西省安康市(2024年-2025年小學(xué)六年級(jí)語文)統(tǒng)編版隨堂測(cè)試(下學(xué)期)試卷及答案
- 2024年給皂液機(jī)項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2025年中小型電動(dòng)機(jī)項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 2025年統(tǒng)編版高考政治一輪復(fù)習(xí):選擇性必修1、2、3共3冊(cè)必背考點(diǎn)知識(shí)點(diǎn)匯編
- 貨物交接單和交接合同
- 《滅火應(yīng)急疏散預(yù)案》課件
- 【高分復(fù)習(xí)筆記】孫廣仁《中醫(yī)基礎(chǔ)理論》(第9版)筆記與考研真題詳解
- 造影劑過敏的護(hù)理
- 開題報(bào)告:高質(zhì)量數(shù)字教材建設(shè)機(jī)制及政策研究
- PE工程師工作總結(jié)
- 以案促改心得體會(huì)
- 華東師范大學(xué)《法學(xué)導(dǎo)論(Ⅰ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 空壓機(jī)操作安全培訓(xùn)
- 自然辯證法論述題146題帶答案(可打印版)
評(píng)論
0/150
提交評(píng)論