JAVA實驗報告(圓類,動物繼承,人類繼承)_第1頁
JAVA實驗報告(圓類,動物繼承,人類繼承)_第2頁
JAVA實驗報告(圓類,動物繼承,人類繼承)_第3頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

4、類型為double。(2)聲明用于保存圓數(shù)量的成員變量num,由Circle類創(chuàng)建任意圓對象時num值均要加1。num變量應該是被所有圓對象共享,所以使用static關(guān)鍵字聲明num為靜態(tài)變量。使用static聲明靜態(tài)方法getNum()用來返回num值,返回類型為int。具體聲明語句為:privatestaticintnum;publicstaticintgetNum()returnnum;(3)使用staticfinal關(guān)鍵字聲明靜態(tài)的符號常量PI(符號常量通常定義為大寫字母),并給其賦值為3.14159,該常量可以被所有Cirlce類的圓對象使用,具體聲明語句為:publicstatic

5、finaldoublePI=3.14159;(4)定義兩個構(gòu)造方法,一個無參的構(gòu)造方法和一個帶參數(shù)構(gòu)造方法,其中帶參構(gòu)造方法對圓對象進行初始化,將參數(shù)r傳遞給圓對象的成員變量radius,。無參構(gòu)造方法則不初始任何變量。若需要在圓對象被創(chuàng)建時將圓的數(shù)量num增加,可以在構(gòu)造方法里對num變量進行增加。(5)程序的入口方法main,在該方法中實例化若干個圓對象,并調(diào)用該對象的setRadius()、getRadius()、calcArea()、calcGirth()、getNum()方法來輸出該對象的半徑、周長、面積屬性及圓個數(shù)。2. 實現(xiàn)類的繼承.(1)人類是學生類的父類,人類具有姓名,性別,

6、年齡等性質(zhì),學生類是人類的子類也具有如上性質(zhì),并且學生類還具有學號這一特性。所以人所具有的共性都封裝在人類這一父類中,學生類不但繼承了人類的共性還具有自己的特有屬性學號。人類中具有了吃和說的行為,學生也繼承了這些行為,并且學生還具有了學習這一行為。根據(jù)以上分析定義兩個類People和Student,People類包括成員變量name、sex、age屬性,成員方法eat()禾口speek()。其中name、sex、age屬性的訪問控制符定義為protected,protected修飾的成員可以被本包中的類以及其子類繼承訪問。eat()、speek()方法的訪問控制符定義為public,publi

7、c修飾的方法其訪問權(quán)限最大可以被所有類訪問。(2)使用extends關(guān)鍵字實現(xiàn)繼承,學生類繼承人類共有的屬性和方法,此外具有stuNo學號屬性和learn()學習方法。(3)父類People中定義的構(gòu)造方法負責對name>sex、age變量初始化,子類Student中定義構(gòu)造方法繼承父類構(gòu)造并對stuNo屬性初始化。在Student類的構(gòu)造方法的第一句使用super(name,sex,age)語句顯式調(diào)用父類構(gòu)造,保證父類構(gòu)造被調(diào)用之后再調(diào)用子類構(gòu)造。(4)編寫程序的入口方法main,在該方法中實例化人類對象和學生對象,并調(diào)用對象的相應方法輸出信息。3. 描述動物世界的特征和關(guān)系.(1)

8、動物世界的名字和食物是共有的屬性,吃和睡覺是共有的行為。定義Animal類,在該類中定義成員變量name和food,成員方法eat()和sleep()。根據(jù)封裝性的要求將name和food屬性定義為private私有的,保證該屬性只能被在本類內(nèi)部訪問,其他類或派生類要訪問該屬性可以通過public公有的方法setName()、getName()、setFood()、getFood()進行訪問,其中setXXX()方法用于給屬性賦值,getXXX()方法用于返回屬性。(2)定義老鼠類Mouse和熊貓類Panda,這兩類均繼承自Animal類,繼承動物類的name和food屬性以及eat()和sl

9、eep()方法。Mouse類和Panda類在構(gòu)造方法中調(diào)用setName()和setFood()方法對名稱和食物屬性初始化。(3)老鼠類定義打洞方法dig()輸出信息。(4)定義測試類AnimalTest,編寫程序入口main()方法,在該方法中創(chuàng)建老鼠和熊貓對象,調(diào)用相應方法輸出信息。4. 汽車的屬性和行為。(1)建立汽車類Car,汽車屬性:名字,排量,油耗,時速分別記作成員變量name,pailia,oilconsume,speed.均用private修飾。定義公共方法點火,熄火,前進,倒退,鳴笛分別為fire(),unfire(),go(),back(),whistle().(2)創(chuàng)建有

10、參構(gòu)造函數(shù)car(Stringname,intpailia,intoilconsume,intspeed)初始化屬性,創(chuàng)建類事例car輸出屬性和行為。5. 求正方形周長和面積。(1) 建立Square類,定義邊長為sl,用private修飾。創(chuàng)建方法grith()和are()分別求周長和面積。(2) 創(chuàng)建有參構(gòu)造方法square(intsl),初始化邊長,創(chuàng)建圓對象并輸出周長和面積。三、實驗代碼定義圓類Circle.publicclassCircleprivatedoubleradius;/圓的半徑privatedoublex;橫坐標privatedoubley;縱坐標privatestati

11、cintnum;圓的個數(shù)privatestaticfinaldoublePI=3.14159;publicdoublegetRadius()/返回半徑returnradius;publicvoidsetRadius(doubleradius)/設(shè)置半徑this.radius=radius;publicdoublecalcArea()/計算圓面積returnPl*this.radius*this.radius;publicdoublecalcGrith()/計算圓周長return2*PI*this.radius;publicstaticintgetNum()/返回圓的個數(shù)returnnum;pu

12、blicCircle()/無參數(shù)構(gòu)造方法num+;帶參數(shù)構(gòu)造方法publicCircle(doubleradius,doublex,doubley)/if(radius<0)"半徑不可以為負數(shù)!”);else/初始化圓的屬性this.radius=radius;this.x=x;this.y=y;num+;publicstaticvoidmain(Stringargs)Circlecircle1=newCircle(10,1,1);創(chuàng)建對象圓1Circlecircle2=newCircle(20,1,1);/創(chuàng)建對象圓2Circlecircle3=newCircle(30,1,

13、1);/創(chuàng)建對象圓3"圓1的半徑:"+circle1.getRadius()+"t");"圓1的面積:"+circle1.calcArea()+"t");"圓1的周長:"+circle1.calcGrith();"圓2的半徑:"+circle2.getRadius()+"t");"圓2的面積:"+circle2.calcArea()+"t");"圓2的周長:"+circle2.calcGrith(

14、);"圓3的半徑:"+circle3.getRadius()+"t");"圓3的面積:"+circle3.calcArea()+"t");"圓3的周長:"+circle3.calcGrith();"圓的個數(shù):"+Circle.getNum();1. 實現(xiàn)類的繼承.classPeople/父類人protectedStringname;/姓名protectedStringsex;/性另Uprotectedintage;/年齡protectedStringgetName()/返回姓

15、名returnname;protectedvoidsetName(Stringname)/設(shè)置姓名=name;protectedStringgetSex()/返回性別returnsex;protectedvoidsetSex(Stringsex)/設(shè)置性別this.sex=sex;protectedintgetAge()/返回年齡returnage;protectedvoidsetAge(intage)/設(shè)置年齡this.age=age;publicstaticvoideat()/吃"我在吃飯!");publicstaticvoidspeak()/說話&q

16、uot;我在說話!");初始化共有屬性publicPeople(Stringname,Stringsex,intage)/=name;this.sex=sex;this.age=age;classStudentextendsPeople/子類學生protectedlongstuNo;/學號protectedlonggetStuNo()/返回學號returnstuNo;protectedvoidsetStuNo(longstuNo)/設(shè)置學號this.stuNo=stuNo;publicstaticvoidlearn()/學習方法"我的學習方法!"

17、);構(gòu)造方法publicStudent(Stringname,Stringsex,intage,longstuNo)/super(name,sex,age);this.stuNo=stuNo;publicclassTestPeople/測試類publicstaticvoidmain(Stringargs)Studentstudent=newStudent(”張一飛","男",18,);"姓名:"+student.getName()+"");"性別:"+student.getSex()+"&quo

18、t;);"年齡:"+student.getAge()+"”);"學號:"+student.getStuNo()+"");People.eat();吃People.speak();說話Student.learn();學習方法3.描述動物世界的特征和關(guān)系.classAnimal/動物類privateStringname;/名字privateStringfood;/食物publicStringgetName()/返回名字returnname;publicvoidsetName(Stringname)/設(shè)置名字=n

19、ame;publicStringgetFood()/返回食物returnfood;publicvoidsetFood(Stringfood)/設(shè)置食物this.food=food;publicstaticvoidEat()/吃"我在吃飯");publicstaticvoidSleep()睡覺"我在睡覺");publicAnimal(Stringname,Stringfood)/構(gòu)造方法=name;this.food=food;classMouseextendsAnimal/老鼠類publicMouse(Stringname,String

20、food)/構(gòu)造方法super(name,food);publicstaticvoiddig()/打洞"我在打洞");classPandaextendsAnimal/熊貓類publicPanda(Stringname,Stringfood)/構(gòu)造方法super(name,food);publicclassAnimalTest/測試類publicstaticvoidmain(Stringargs)Pandapanda=newPanda("熊貓","竹葉");/實例化熊貓"名字:"+panda.getName()+&q

21、uot;t");"食物:"+panda.getFood()+"t");Panda.Eat();吃Panda.Sleep();睡覺5Mousemouse=newMouse(”老鼠",”大米");/實例化老鼠"名字:"+mouse.getName()+"t");"食物:"+mouse.getFood()+"t");Mouse.Eat();/吃Mouse.Sleep();/睡覺Mouse.dig();/打洞4.汽車的基本屬性和行為publicclass

22、Car/汽車類privateStringname;定義名字privateintpailia;/定義排量privateintoilconsume;/定義油耗privateintspeed;/定義時速publicStringgetName()/返回名字returnname;publicvoidsetName(Stringname)/設(shè)置名字=name;publicintgetPailia()/返回排量returnpailia;publicvoidsetPailia(intpailia)/設(shè)置排量this.pailia=pailia;publicintgetOilconsume()

23、/返回油耗returnoilconsume;設(shè)置油耗publicvoidsetOilconsume(intoilconsume)/this.oilconsume=oilconsume;publicintgetSpeed()/返回時速returnspeed;publicvoidsetSpeed(intspeed)/設(shè)置時速this.speed=speed;publicstaticvoidfire()/點火"點火!”);publicstaticvoidoutfire()/熄火"熄火!");publicstaticvoidgo()/前進"前進!”);publi

24、cstaticvoidback()/倒退"倒退!”);publicstaticvoidwhistle()/鳴笛"鳴笛!”);構(gòu)造方法publicCar(Stringname,intpailia,intoilconsume,intspeed)/=name;this.pailia=pailia;this.oilconsume=oilconsume;this.speed=speed;Publicstaticvoidmain(Stringargs)Carcar=newCar("寶馬",100,50,100);/實例化一個汽車"汽車的屬

25、性:”);5"汽車品牌:"+car.getName()+"t");"排量:"+car.getPailia()+"ml"+"t");"油耗:"+car.getOilconsume()+"ml/h"+"t");"時速:"+car.getSpeed()+"km/h");55"汽車的行為:”);Car.fire();點火Car.outfire();熄火Car.go();前進Car.back();倒退Car.whistle();鳴笛5.求正方形的周長和面積.classSqure/定義正方形類privateintsl;/定義邊長publicintgetSl()/返回邊長returnsl;publicvoidsetSl(intsl)/設(shè)置邊長this.sl=s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論