JAVA實(shí)驗(yàn)報(bào)告(圓類動(dòng)物繼承人類繼承)_第1頁
JAVA實(shí)驗(yàn)報(bào)告(圓類動(dòng)物繼承人類繼承)_第2頁
JAVA實(shí)驗(yàn)報(bào)告(圓類動(dòng)物繼承人類繼承)_第3頁
JAVA實(shí)驗(yàn)報(bào)告(圓類動(dòng)物繼承人類繼承)_第4頁
JAVA實(shí)驗(yàn)報(bào)告(圓類動(dòng)物繼承人類繼承)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Java程序設(shè)計(jì) 實(shí)驗(yàn)報(bào)告2014年10 月17日姓名班 級(jí)軟工班學(xué) 號(hào)課程名稱Java語言程序設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目名 稱構(gòu)造方法與繼承指導(dǎo)教師一、實(shí)驗(yàn)?zāi)康模骸?. 編寫程序定義圓類Circle,把圓的性質(zhì)和行為用代碼塊封裝起來。圓的性質(zhì)包括圓的半徑,圓心坐標(biāo),行為包括計(jì)算圓面積,計(jì)算圓周長(zhǎng)、設(shè)置半徑、獲取半徑、計(jì)算圓個(gè)數(shù)。實(shí)例化若干個(gè)圓對(duì)象,調(diào)用相應(yīng)方法計(jì)算出圓面積、圓周長(zhǎng)并計(jì)圓個(gè)數(shù)。 2. 編程實(shí)現(xiàn)類的繼承。編寫父類People,子類Student繼承自人類。人類具有姓名,性別,年齡等性質(zhì),還具有吃和說的行為。學(xué)生類繼承父類,還擁有學(xué)號(hào)性質(zhì)和學(xué)習(xí)行為。構(gòu)造人類和學(xué)生類的對(duì)象,調(diào)用吃、說、學(xué)習(xí)的方法

2、輸出有關(guān)信息。 3. 使用 Java的繼承關(guān)系來描述動(dòng)物世界的特征和關(guān)系。( 1 ) 抽象出項(xiàng)目問題中的對(duì)象 :動(dòng)物、老鼠、熊貓。( 2 ) 抽象出每種對(duì)象所具有的性質(zhì):名字和食物。( 3 ) 抽象出每種對(duì)象所具有的行為,動(dòng)物具有吃的行為和睡覺的行為,老鼠除具有動(dòng)物行為外還具有打洞行為。( 4 ) 抽象出繼承關(guān)系,老鼠類和熊貓類作為子類繼承父類動(dòng)物類,子類繼承父類的屬性和方法。 4.定義汽車類,其中包含所有汽車共有的屬性如名字、排量、油耗、時(shí)速等,包含行為如點(diǎn)火、熄火、前進(jìn)、倒退、鳴笛等,然后在測(cè)試類中用定義的類來創(chuàng)建對(duì)象,輸出該對(duì)象的屬性和行為信息。 5按以下要求編寫程序(1) 創(chuàng)建一個(gè)正方

3、形類,添加正方形的邊作為成員變量(2) 在正方形類中添加兩種方法分別計(jì)算正方形的周長(zhǎng)和面積(3) 編程在測(cè)試類中輸出一個(gè)正方形的周長(zhǎng)和面積二、實(shí)驗(yàn)原理(可以流程圖的形式出現(xiàn),加以文字說明)1. 定義圓類Circle.( 1 ) 抽象出Circle類包含成員變量radius、x和y,它們的類型均為double,代表了圓的半徑和坐標(biāo)屬性。成員方法setRadius( )、getRadius( )、calcArea( )、calcGirth( ),分別實(shí)現(xiàn)設(shè)置半徑、返回半徑、計(jì)算面積、計(jì)算周長(zhǎng)的行為。其中setRadius( )方法用于給半徑賦值沒有返回值,類型為void。calcArea( )、c

4、alcGirth( ) 、getRadius( )方法用于計(jì)算和返回半徑值,類型為double。( 2 ) 聲明用于保存圓數(shù)量的成員變量num,由Circle類創(chuàng)建任意圓對(duì)象時(shí)num值均要加1。 num變量應(yīng)該是被所有圓對(duì)象共享,所以使用static關(guān)鍵字聲明num為靜態(tài)變量。使用static聲明靜態(tài)方法getNum( )用來返回num值,返回類型為int。具體聲明語句為:private static int num; public static int getNum() return num;( 3 ) 使用static final關(guān)鍵字聲明靜態(tài)的符號(hào)常量PI(符號(hào)常量通常定義為大寫字母),

5、并給其賦值為3.14159,該常量可以被所有Cirlce類的圓對(duì)象使用,具體聲明語句為:public static final double PI = 3.14159; ( 4 ) 定義兩個(gè)構(gòu)造方法,一個(gè)無參的構(gòu)造方法和一個(gè)帶參數(shù)構(gòu)造方法,其中帶參構(gòu)造方法對(duì)圓對(duì)象進(jìn)行初始化,將參數(shù)r傳遞給圓對(duì)象的成員變量radius,。無參構(gòu)造方法則不初始任何變量。若需要在圓對(duì)象被創(chuàng)建時(shí)將圓的數(shù)量num增加,可以在構(gòu)造方法里對(duì)num變量進(jìn)行增加。( 5 ) 程序的入口方法main,在該方法中實(shí)例化若干個(gè)圓對(duì)象,并調(diào)用該對(duì)象的setRadius( )、getRadius( )、calcArea( )、calcG

6、irth( )、getNum( )方法來輸出該對(duì)象的半徑、周長(zhǎng)、面積屬性及圓個(gè)數(shù)。2. 實(shí)現(xiàn)類的繼承.( 1 ) 人類是學(xué)生類的父類,人類具有姓名,性別,年齡等性質(zhì),學(xué)生類是人類的子類也具有如上性質(zhì),并且學(xué)生類還具有學(xué)號(hào)這一特性。所以人所具有的共性都封裝在人類這一父類中,學(xué)生類不但繼承了人類的共性還具有自己的特有屬性學(xué)號(hào)。人類中具有了吃和說的行為,學(xué)生也繼承了這些行為,并且學(xué)生還具有了學(xué)習(xí)這一行為。 根據(jù)以上分析定義兩個(gè)類People和Student,People類包括成員變量name、sex、age屬性,成員方法eat( )和speek( )。其中name、sex、age屬性的訪問控制符定義

7、為protected,protected修飾的成員可以被本包中的類以及其子類繼承訪問。eat( )、speek( )方法的訪問控制符定義為public,public修飾的方法其訪問權(quán)限最大可以被所有類訪問。( 2 ) 使用extends關(guān)鍵字實(shí)現(xiàn)繼承,學(xué)生類繼承人類共有的屬性和方法,此外具有stuNo學(xué)號(hào)屬性和learn( )學(xué)習(xí)方法。( 3 ) 父類People中定義的構(gòu)造方法負(fù)責(zé)對(duì)name、sex、age變量初始化,子類Student中定義構(gòu)造方法繼承父類構(gòu)造并對(duì)stuNo屬性初始化。在Student類的構(gòu)造方法的第一句使用super(name, sex, age) 語句顯式調(diào)用父類構(gòu)造,

8、保證父類構(gòu)造被調(diào)用之后再調(diào)用子類構(gòu)造。( 4 ) 編寫程序的入口方法main,在該方法中實(shí)例化人類對(duì)象和學(xué)生對(duì)象,并調(diào)用對(duì)象的相應(yīng)方法輸出信息。3. 描述動(dòng)物世界的特征和關(guān)系.AnimalPandasleepMouseeatdig( 1 ) 動(dòng)物世界的名字和食物是共有的屬性,吃和睡覺是共有的行為。定義Animal類,在該類中定義成員變量name 和food,成員方法eat( )和sleep( )。根據(jù)封裝性的要求將name和food屬性定義為private私有的,保證該屬性只能被在本類內(nèi)部訪問,其他類或派生類要訪問該屬性可以通過public公有的方法setName( )、getName( )、

9、setFood( )、getFood( )進(jìn)行訪問,其中setXXX( )方法用于給屬性賦值,getXXX( )方法用于返回屬性。( 2 ) 定義老鼠類Mouse和熊貓類Panda,這兩類均繼承自Animal類,繼承動(dòng)物類的name 和food屬性以及eat( )和sleep( )方法。Mouse類和Panda類在構(gòu)造方法中調(diào)用setName( )和setFood( )方法對(duì)名稱和食物屬性初始化。( 3 ) 老鼠類定義打洞方法dig( )輸出信息。( 4 ) 定義測(cè)試類AnimalTest,編寫程序入口main( )方法,在該方法中創(chuàng)建老鼠和熊貓對(duì)象,調(diào)用相應(yīng)方法輸出信息。4.汽車的屬性和行為

10、。(1)建立汽車類Car,汽車屬性:名字,排量,油耗,時(shí)速分別記作成員變量name,pailia,oilconsume,speed.均用private修飾。定義公共方法點(diǎn)火,熄火,前進(jìn),倒退,鳴笛分別為fire(),unfire(),go(),back(),whistle().(2)創(chuàng)建有參構(gòu)造函數(shù)car(String name,int pailia,int oilconsume,int speed)初始化屬性,創(chuàng)建類事例car輸出屬性和行為。5.求正方形周長(zhǎng)和面積。(1)建立Square類,定義邊長(zhǎng)為sl,用private修飾。創(chuàng)建方法grith()和are()分別求周長(zhǎng)和面積。(2)創(chuàng)建有

11、參構(gòu)造方法square(int sl),初始化邊長(zhǎng),創(chuàng)建圓對(duì)象并輸出周長(zhǎng)和面積。三、實(shí)驗(yàn)代碼1. 定義圓類Circle.public class Circle private double radius;/圓的半徑private double x;/橫坐標(biāo)private double y;/縱坐標(biāo)private static int num;/圓的個(gè)數(shù)private static final double PI = 3.14159;public double getRadius() /返回半徑return radius;public void setRadius(double radius)

12、/設(shè)置半徑this.radius = radius;public double calcArea() /計(jì)算圓面積return PI*this.radius*this.radius; public double calcGrith() /計(jì)算圓周長(zhǎng)return 2*PI*this.radius;public static int getNum() /返回圓的個(gè)數(shù)return num; public Circle()/無參數(shù)構(gòu)造方法num+;public Circle(double radius,double x,double y) /帶參數(shù)構(gòu)造方法if (radius 0) System.ou

13、t.println(半徑不可以為負(fù)數(shù)!);else /初始化圓的屬性this.radius = radius; this.x = x;this.y = y;num +; public static void main(String args) Circle circle1 = new Circle(10,1,1);/創(chuàng)建對(duì)象圓1Circle circle2 = new Circle(20,1,1); /創(chuàng)建對(duì)象圓2Circle circle3 = new Circle(30,1,1); /創(chuàng)建對(duì)象圓3System.out.print(圓1的半徑: +circle1.getRadius()+t)

14、;System.out.print(圓1的面積: +lcArea()+t);System.out.println(圓1的周長(zhǎng): +lcGrith();System.out.print(圓2的半徑: +circle2.getRadius()+t);System.out.print(圓2的面積: +lcArea()+t);System.out.println(圓2的周長(zhǎng): +lcGrith();System.out.print(圓3的半徑: +circle3.getRadius()+t);System.out.print(圓3的面積: +lcArea()+t);System.out.println

15、(圓3的周長(zhǎng): +lcGrith();System.out.println(圓的個(gè)數(shù): +Circle.getNum();2. 實(shí)現(xiàn)類的繼承.class People /父類人protected String name;/姓名protected String sex;/性別protected int age;/年齡protected String getName() /返回姓名return name;protected void setName(String name) /設(shè)置姓名=name;protected String getSex() /返回性別return sex;protected

16、 void setSex(String sex) /設(shè)置性別this.sex=sex;protected int getAge() /返回年齡return age;protected void setAge(int age) /設(shè)置年齡this.age=age;public static void eat() /吃System.out.print(我在吃飯! );public static void speak() /說話System.out.print(我在說話!); public People(String name, String sex, int age) /初始化共有屬性 = nam

17、e; this.sex = sex; this.age = age; class Student extends People /子類學(xué)生protected long stuNo;/學(xué)號(hào)protected long getStuNo() /返回學(xué)號(hào)return stuNo; protected void setStuNo(long stuNo) /設(shè)置學(xué)號(hào)this.stuNo=stuNo;public static void learn() /學(xué)習(xí)方法System.out.println(我的學(xué)習(xí)方法!);public Student(String name, String sex, int

18、age, long stuNo) /構(gòu)造方法 super(name, sex, age); this.stuNo = stuNo;public class TestPeople /測(cè)試類public static void main(String args) Student student = new Student(張一飛,男,18,13130001);System.out.print(姓名:+student.getName()+ );System.out.print(性別:+student.getSex()+ );System.out.print(年齡:+student.getAge()+

19、 );System.out.print(學(xué)號(hào):+student.getStuNo()+ );People.eat();/吃People.speak();/說話Student.learn();/學(xué)習(xí)方法3. 描述動(dòng)物世界的特征和關(guān)系.class Animal /動(dòng)物類private String name;/名字private String food;/食物public String getName() /返回名字return name;public void setName(String name) /設(shè)置名字 = name;public String getFood() /返回食物retur

20、n food;public void setFood(String food) /設(shè)置食物this.food = food;public static void Eat() /吃System.out.print(我在吃飯 );public static void Sleep()/睡覺System.out.print(我在睡覺 );public Animal(String name,String food)/構(gòu)造方法 = name;this.food = food;class Mouse extends Animal /老鼠類public Mouse(String name,String foo

21、d) /構(gòu)造方法super(name,food);public static void dig() /打洞System.out.println(我在打洞);class Panda extends Animal /熊貓類public Panda(String name,String food) /構(gòu)造方法super(name,food); public class AnimalTest /測(cè)試類public static void main(String args)Panda panda = new Panda(熊貓,竹葉);/實(shí)例化熊貓System.out.print(名字: +panda.g

22、etName()+t);System.out.println(食物: +panda.getFood()+t);Panda.Eat();/吃Panda.Sleep();/睡覺System.out.println();Mouse mouse = new Mouse(老鼠,大米);/實(shí)例化老鼠System.out.print(名字: +mouse.getName()+t);System.out.print(食物: +mouse.getFood()+t);Mouse.Eat();/吃Mouse.Sleep();/睡覺Mouse.dig();/打洞 4.汽車的基本屬性和行為 .public class

23、Car /汽車類private String name;/定義名字private int pailia;/定義排量private int oilconsume;/定義油耗private int speed;/定義時(shí)速public String getName() /返回名字return name;public void setName(String name) /設(shè)置名字 = name;public int getPailia() /返回排量return pailia;public void setPailia(int pailia) /設(shè)置排量this.pailia = pailia;pub

24、lic int getOilconsume() /返回油耗return oilconsume;public void setOilconsume(int oilconsume) /設(shè)置油耗this.oilconsume = oilconsume;public int getSpeed() /返回時(shí)速return speed;public void setSpeed(int speed) /設(shè)置時(shí)速this.speed = speed;public static void fire() /點(diǎn)火System.out.print(點(diǎn)火! );public static void outfire()

25、/熄火System.out.print(熄火! );public static void go() /前進(jìn)System.out.print(前進(jìn)! );public static void back() /倒退System.out.print(倒退! );public static void whistle() /鳴笛System.out.print(鳴笛! );public Car(String name,int pailia,int oilconsume,int speed) /構(gòu)造方法 = name;this.pailia = pailia;this.oilconsume = oilco

26、nsume;this.speed = speed;Public static void main(String args) Car car = new Car(寶馬,100,50,100);/實(shí)例化一個(gè)汽車System.out.println(汽車的屬性:);System.out.println();System.out.print(汽車品牌:+car.getName()+t);System.out.print(排量:+car.getPailia()+ml+t);System.out.print(油耗:+car.getOilconsume()+ml/h+t);System.out.println(時(shí)速:+car.getSpeed()+km/h);System.out.println();System.out.println();System.out.println(汽車的行為:);S

溫馨提示

  • 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)論