




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Java語言程序設(shè)計上機實驗報告(6)實驗名稱: Java面向?qū)ο缶幊?(3)班 級: 軟件101 姓 名: 許 小 軍 學(xué) 號: 110029025 上機時間: 指導(dǎo)教師: 王 華 實驗六 Java面向?qū)ο缶幊?(3)實驗【目的】 理解構(gòu)造函數(shù)的繼承與重載。 抽象類和接口的使用。 包的定義與使用。 綜合運用所學(xué)知識編寫程序。實驗內(nèi)容:1構(gòu)造函數(shù)的繼承與重載。(1) 首先預(yù)測下列程序的運行結(jié)果,然后編譯、執(zhí)行以驗證你的預(yù)測:public class JLab0503 public static void main(String args) System.out.println("創(chuàng)建
2、父類對象:"); SuperClass sc0 = new SuperClass(); System.out.println("n創(chuàng)建第一個子類對象:"); SubClass sc1 = new SubClass(); System.out.println("n創(chuàng)建第二個子類對象:"); SubClass sc2 = new SubClass(1); class SuperClass SuperClass( ) System.out.println("父類的構(gòu)造函數(shù)"); class SubClass extends Sup
3、erClass SubClass( ) System.out.println("子類的第一個構(gòu)造函數(shù)"); SubClass(int i) System.out.println("子類的第二個構(gòu)造函數(shù)"); 運行結(jié)果:(2) 去掉SubClass的所有構(gòu)造函數(shù),然后將JLab0503類中main方法的最后兩行語句刪除。預(yù)測修改后程序的運行結(jié)果,并進行驗證。代碼: package xuxiaojun;public class JLab0503 public static void main(String args) System.out.println(&
4、quot;創(chuàng)建父類對象:");SuperClass sc0 = new SuperClass();System.out.println("n創(chuàng)建第一個子類對象:");SubClass sc1 = new SubClass();class SuperClass SuperClass() System.out.println("父類的構(gòu)造函數(shù)");class SubClass extends SuperClass 運行結(jié)果:2抽象類與接口。(1)試改寫實驗指導(dǎo)手冊(5)中第3題的Pet類,其中move與speak方法定義為抽象方法。定義一個Pet類
5、的子類Cat類。在Cat類中實現(xiàn)move和Speak方法。其中move方法返回值為“run”,speak方法返回值為“miao miao”。(2)編寫含有主方法的公共類JLab0504A,在其主方法中創(chuàng)建一個名為myCat的Cat的實例。并依照實驗指導(dǎo)手冊(5)中的類JLab0501主方法中的相應(yīng)格式輸出結(jié)果。代碼: package xuxiaojun;abstract class Pet protected String name;public Pet(String n) name = n;public String getName() return name;public String t
6、oString() return "My pet " + name;abstract String move();abstract String speak();class Cat extends Pet public Cat(String n) super(n);String move() return "run"String speak() return "miao,miao"public class JLab0504A public static void main(String args) Cat myCat = new Ca
7、t("Kitty");System.out.println(myCat.toString() + "n" + "Speak: " + myCat.speak() +"n" + myCat.move() + " " + myCat.getName() + "n");運行結(jié)果:(2) 如果將Pet定義為接口,即所有相應(yīng)方法全部為抽象方法,則Cat類該如何改動?試改寫相關(guān)代碼,并驗證你的結(jié)果。代碼: package xuxiaojun;interface Pet1 final St
8、ring name = " Hello Kitty" public abstract String getName();public abstract String move();public abstract String speak();public abstract String toString();class Cat1 implements Pet1public String getName()return name;public String move()return "run"public String speak()return &quo
9、t;miao,miao"public String toString()return "My pet" + name;public class JLab0504A2 public static void main(String args) Cat1 myCat = new Cat1();System.out.println(myCat.toString() + "n" + "Speak: " + myCat.speak() +"n" + myCat.move() + " " + myC
10、at.getName() + "n");運行結(jié)果:3包的定義和使用。A.(1)在C:javalab目錄下新建目錄mypg;使用記事本程序編輯下列程序并將其保C:javalabmypgMyPackage.javapackage mypg;public class MyPackage public MyPackage() System.out.println("create MyPackage object"); (2)編輯下列代碼,并將其保存為C:javalabJLab0505.javapublic class JLab0505 public static
11、 void main(String args) MyPackage mpg = new MyPackage(); (3) 分別編譯上述兩個java源程序,并執(zhí)行JLab0505。觀察相應(yīng)結(jié)果。(4)試將C:javalabmypgMyPackage.class文件移動(剪切、粘貼)到C:javalab目錄下。再次運行JLab0505,觀察結(jié)果并思考原因。原因:兩個類不在同一個包中,不能直接訪問。B. 在存放源程序的文件夾中建立一個子文件夾 Mypackage。例如,在“E:java程序”文件夾之中創(chuàng)建一個與包同名的子文件夾 Mypackage(E:java程序Mypackage),并將編譯過的c
12、lass文件放入該文件夾中。注意:包名與文件夾名大小寫要一致。(1)在包中創(chuàng)建類-YMD.java。程序功能:在源程序中,首先聲明使用的包名Mypackage,然后創(chuàng)建YMD類,該類具有計算今年的年份,可以輸出一個帶有年月日的字符串的功能。(2)編寫使用包Mypackage中YMD類的程序。程序功能:給定某人姓名與出生日期,計算該人年齡,并輸出該人姓名,年齡,出生日期。源代碼:package MyPackage; /聲明存放類的包 import java.util.*; public class YMD private int year,month,day; public static voi
13、d main(String arg3) public YMD(int y,int m,int d) year = y; month = (m>=1) & (m<=12) ? m : 1); day = (d>=1) & (d<=31) ? d : 1); public YMD() this(0,0,0); public static int thisyear() return Calendar.getInstance().get(Calendar.YEAR);/返回當年的年份 public int year() return year;/返回年份 pub
14、lic String toString() return year+"-"+month+"-"+day;/返回轉(zhuǎn)化為字符串的年-月-日 import MyPackage.YMD; /引用 Mypackage 包中的 KY4_1_YMD 類 public class KY4_2 private String name; private YMD birth; public static void main(String args) KY4_2 a = new KY4_2("許小軍",1988,9,29); a.output(); publ
15、ic KY4_2(String n1,YMD d1) name = n1; birth = d1; public KY4_2(String n1,int y,int m,int d) this(n1,new YMD(y,m,d);/初始化變量與對象 public int age() /計算年齡 return YMD.thisyear() - birth.year(); /返回當前年與出生年的差即年齡 public void output() System.out.println("姓名 : "+name); System.out.println("出生日期: &q
16、uot;+birth.toString(); System.out.println("今年年齡 : "+age(); 運行結(jié)果:4綜合實驗。定義抽象類Shape表示一般二維圖形。Shape具有抽象方法area和perimeter分別計算形狀的面積和周長。試定義一些二維形狀類(如矩形、三角形、圓形、橢圓形等),這些類均為Shape類的子類。完成相關(guān)類的定義后,定義含有main方法的類JLab0506來使用這些類的相應(yīng)對象,輸出相關(guān)信息:如對象所代表圖形形狀、基本數(shù)據(jù)(半徑、長寬高等等)以及面積、周長等計算值。源代碼:package xuxiaojun;abstract cla
17、ss Shape abstract double area();abstract double perimeter();class Rectangle extends JLab05061 public double width, length;Rectangle(double length, double width) this.length = length;this.width = width;double area() return width * length;double perimeter() return 2 * length * width;class Triangle ext
18、ends JLab05061 public double a , b , c;public double s;Triangle(double a, double b, double c) this.a = a;this.b = b;this.c = c;s = (a + b + c) / 2;double area() return Math.sqrt(s * (s - a) * (s - b) * (s - c);double perimeter() return a + b + c;class Circle extends JLab05061 public double radius;Circle(double radius) this.radius = radius;double area() return Math.PI * radius * radius;double perimeter() return 2 * Math.PI * radius;public class JLab05061 public static void main(String args) Rectangle rec = new Rectangle(10, 20);System.out.println("矩形的長:" + rec.length
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZJCX 0045-2024 食用菌干制品
- T-ZGZS 0411-2024 T-CCPITCSC 150-2024 綠色會展廢棄物管理規(guī)范
- T-ZMDS 10024-2024 手術(shù)導(dǎo)航設(shè)備配準技術(shù)要求及試驗方法
- 2025年度高端辦公空間無償租賃合作協(xié)議
- 2025年度能源企業(yè)質(zhì)押貸款擔(dān)保合同
- 二零二五年度企業(yè)辦公用品定制化采購合同
- 醫(yī)藥公司二零二五年度員工商業(yè)秘密保密協(xié)議及保密技術(shù)支持服務(wù)協(xié)議
- 2025年度村辦公室裝修與農(nóng)村電商市場拓展合作合同
- 二零二五年度酒店加盟店經(jīng)營管理合作協(xié)議
- 2025年度物流園區(qū)開發(fā)物業(yè)移交與倉儲物流服務(wù)協(xié)議
- 2025年黑龍江旅游職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫完整
- 部編版《道德與法治》四年級下冊全冊教案
- 雷鋒精神生生不息-2025年學(xué)校3.5學(xué)雷鋒月主題活動方案
- 山東2025年山東大學(xué)輔導(dǎo)員招聘筆試歷年參考題庫附帶答案詳解
- 骨科管理制度
- 電動叉車培訓(xùn)課件
- 2025年山東化工職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 健身行業(yè)會員權(quán)益保障及免責(zé)條款協(xié)議
- 脾破裂保守治療的護理
- 煤礦安全質(zhì)量標準化培訓(xùn)課件
- 2024解析:第十七章歐姆定律-基礎(chǔ)練(解析版)
評論
0/150
提交評論