Java語言程序設(shè)計_第1頁
Java語言程序設(shè)計_第2頁
Java語言程序設(shè)計_第3頁
Java語言程序設(shè)計_第4頁
Java語言程序設(shè)計_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論