




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、班級: 姓名: 學號: 成績 實驗二 Java面向對象技術必做實驗目的:1. 理解繼承的概念2. 掌握繼承的實現3. 理解繼承中的覆蓋現象4. 理解抽象類的概念,掌握定義抽象類的方法和應用5. 掌握接口的定義和實現接口的方法實驗數據記錄及分析(或程序及運行結果)1. 按照要求完成程序:1) 聲明一個圖形類(Shape),含有一個成員變量color(字符串類型),一個無參構造方法,一個有一個字符串參數的構造方法用于初始化顏色變量,一個getColor方法返回顏色值,一個抽象方法getArea獲取圖形面積,一個toString()方法顯示圖形的詳細信息。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) 聲明一個圓形類(Circle)繼承自圖形類,含有一個成員變量半徑r;有一個有兩個參數的構造方法用于初始化顏色和半徑;一個getArea方法獲取圓的面積;一個toString()方法顯示圓形的詳細信息。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) 聲明一個矩形類(Rectangle)繼承自圖形,含有兩個double類型的成員變量長a和寬b;有一個有三個參數的構造方法用于初始化顏色、長和寬;一個getArea方法獲取矩形的面積;一個toString()方法顯示矩形的詳細信息。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) 聲明一個圖形工廠類型,內含一個createShape方法,根據用戶輸入的圖形類型的名稱,進而提示輸入相應信息生成圖形對象。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) 聲明一個測試類(TestShape):不斷詢問用戶欲生成圖形類型的名稱,由圖形工廠創建相應圖形類型,并打印相應圖形的詳細,直到用戶輸入quit為止。import java.util.Scanner;public class TestShape public static void main(String args) Scanner sc =
9、 new Scanner(System.in);System.out.println("請輸入欲創建圖形的名稱(Circle或Rectangle):");String name;while (sc.hasNextLine() name = sc.nextLine();Shape s = ShapeFactory.createShape(name);System.out.println(s);System.out.println("請輸入欲創建圖形的名稱(Circle或Rectangle):");2. 根據要求完成程序:1) 定義名稱為PCI的接口,包括啟
10、動方法start和關閉方法stop;public interface PCI void start();void stop();2) 定義名稱為NetworkCard 的類表示網卡,實現PCI接口,并且其在實現start方法時輸出“sending data”,在實現stop方法時輸出“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 的類表示聲卡,實現PCI接口;并且其在實現start方法時輸出“dudu”,在實現stop方法時輸出“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),在方法體內通過p來啟動組件;包含方法public void stopPCICard(PCI p),在方法體內通過p來關閉組件;public class MainBoard public void startPCICard(PCI p) p.start();public void stopPCICard(PCI p) p.stop();5) 定義一個包含main方法的Test類,在main方法內創建一個MainBoard 對象(用mb來引用),創建一個NetworkCard對象,通過mb分別啟動和停止聲卡;創建一個SoundCard對象,通過
13、mb分別啟動和停止網卡。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. 按照要求完成程序(知識點:子類的構造方法一定會調用父類的構造方法)public class Testpublic static
14、 void main(String args)System.out.println("創建父類對象:");SuperClass sc0 = new SuperClass();System.out.println("n創建第一個子類對象:");SubClass sc1 = new SubClass();System.out.println("n創建第二個子類對象:");SubClass sc2 = new SubClass(1);class SuperClassSuperClass( )System.out.println("
15、父類的構造函數");class SubClass extends SuperClassSubClass( )/super();System.out.println("子類的第一個構造函數");SubClass(int i)/super();System.out.println("子類的第二個構造函數");寫出程序的運行結果:子類構造函數若沒有顯式調用父類構造函數,則隱含調用父類無參構造函數,上面代碼等價如下代碼:public class Testpublic static void main(String args)System.out.pri
16、ntln("創建父類對象:");SuperClass sc0 = new SuperClass();System.out.println("n創建第一個子類對象:");SubClass sc1 = new SubClass();class SuperClassSuperClass( )System.out.println("父類的構造函數");class SubClass extends SuperClassSubClass( ) super();System.out.println("子類的第一個構造函數");S
17、ubClass(int i) super();System.out.println("子類的第二個構造函數");所以得出如下結果:創建父類對象:父類的構造函數創建第一個子類對象:父類的構造函數子類的第一個構造函數創建第二個子類對象:父類的構造函數子類的第二個構造函數要求:去掉SubClass的所有構造函數,然后將Test類中main方法的最后兩行語句刪除。預測修改后程序的運行結果,并進行驗證。public class Testpublic static void main(String args)System.out.println("創建父類對象:")
18、;SuperClass sc0 = new SuperClass();System.out.println("n創建第一個子類對象:");SubClass sc1 = new SubClass();class SuperClassSuperClass( )System.out.println("父類的構造函數");class SubClass extends SuperClass 去掉SubClass的所有構造函數,上面代碼等價于如下代碼:public class Testpublic static void main(String args)System.out.println("創建父類對象:")
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 榆林市榆陽區2025年五年級數學第二學期期末考試模擬試題含答案
- 江蘇省啟東市長江中學2025屆高考沖刺七歷史試題含解析
- 內蒙古鄂爾多斯市鄂托克旗2024-2025學年初三期末熱身聯考英語試題含答案
- 玉柴職業技術學院《搜索引擎系統應用實踐》2023-2024學年第二學期期末試卷
- 四川華新現代職業學院《大學英語III》2023-2024學年第二學期期末試卷
- 上海海事大學《科技檔案管理》2023-2024學年第一學期期末試卷
- 天津美術學院《診斷學(二)》2023-2024學年第二學期期末試卷
- 寧夏工業職業學院《生物醫藥與新材料化工科研創新訓練》2023-2024學年第二學期期末試卷
- 山西省晉中學市榆社縣2024-2025學年初三中考考前輔導生物試題含解析
- 南通職業大學《臨床檢驗設備與技術實驗》2023-2024學年第二學期期末試卷
- 食堂應急預案管理制度
- CISP-PTE培訓課件教學課件
- 2025年新高考歷史預測模擬試卷黑吉遼蒙卷(含答案解析)
- 2025年醫院文化節活動策劃
- 部隊防雷電暴雨安全知識
- 2025年消防文員類面試題及答案
- 重慶市名校聯盟2024-2025學年高二上學期第一次聯合考試物理試題(解析版)
- 船舶駕駛培訓虛擬場景構建-深度研究
- 手術患者預防跌倒
- 《特斯拉汽車供應鏈管理》課件
- 清華-市場營銷學教案
評論
0/150
提交評論