Java實(shí)驗(yàn)708繼承_第1頁
Java實(shí)驗(yàn)708繼承_第2頁
Java實(shí)驗(yàn)708繼承_第3頁
Java實(shí)驗(yàn)708繼承_第4頁
Java實(shí)驗(yàn)708繼承_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論