實驗四-類與對象_第1頁
實驗四-類與對象_第2頁
實驗四-類與對象_第3頁
實驗四-類與對象_第4頁
實驗四-類與對象_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗四 類與對象1. 實驗?zāi)康?、使用類來封裝對象的屬性和行為;2、掌握對象的組合以及參數(shù)傳遞;3、掌握類變量與實例變量,以及類方法與實例方法的區(qū)別2. 實驗內(nèi)容1、參考教科書,完成下面實驗:1)實驗 1 Tank 類2)實驗2計算機與光盤3)實驗3家族的姓氏4)實驗4三角形、梯形和圓形的類封裝5)實驗5實例成員與類成員2、完成習(xí)題:1)根據(jù)要求修改實驗1,改進speedUP方法,使得Tank類的對象加速 時不能將speed值超過220;增加一個剎車方法:void brake() , Tank類的 對象調(diào)用它能將speed 的值變成0。2)根據(jù)要求修改實驗2,主類中再增加一個CD 的對象,然后

2、將計算機中的數(shù)據(jù)(data數(shù)組)復(fù)制到CD對象中。3、提高題編寫儲蓄賬戶類及測試類,模擬存款,參考以下運行方式:( 1)新開5 個儲蓄賬戶,各儲蓄賬戶的編號、戶名在新開儲蓄賬戶時初始化,假設(shè)每位用戶新開儲蓄賬戶時都存入了一筆錢。( 2)提示用戶從鍵盤輸入儲蓄賬戶編號。( 3)若輸入的儲蓄賬戶編號與新開的5 個儲蓄賬戶編號之一匹配,則提示用戶從鍵盤輸入存款金額,存款金額必須大于0,否則顯示錯誤提示,直到用戶輸入的存款金額大于 0 為止。( 4)相應(yīng)儲蓄賬戶的余額被更新。( 5)存款完成后,提示存款成功,顯示該儲蓄賬戶的編號、戶名、余 額。( 6)若輸入的儲蓄賬戶編號與新開的5 個儲蓄賬戶編號均無

3、法匹配,顯示錯誤提示,并詢問是否還要繼續(xù)存款。( 7)用戶輸入yes,繼續(xù)執(zhí)彳T步驟(2),否則顯示退出信息。最基本要求:繪制 UML 類圖;儲蓄賬戶的余額必須確保大于等于 0。3. 實驗步驟參考教材中相關(guān)的實驗。4. 評分標(biāo)準(zhǔn)1. A內(nèi)容功能完善,編程風(fēng)格好,人機接口界面好;2. B內(nèi)容功能完善,編程風(fēng)格良好,人機接口界面良好;3. C完成必做內(nèi)容;4. D能完成必做內(nèi)容;5. E未按時完成必做內(nèi)容,或者抄襲(雷同者全部為E)參照書上實驗按模版要求,將【代碼】替換為 Java 程序代碼,編寫好完整的程序文檔,最后運行得到的相關(guān)文件,把實驗所得文件一起打包上交。 (壓縮包的文件名為:學(xué)號后三位

4、和名字開頭字母,如 109zhh RAR|ZIP)實驗 1 Tank 類模板代碼Tank.javapublic class Tank 【代碼1】/聲明double型變量speed,刻畫速度【代碼2】/聲明int型變量bulletAmount ,刻畫炮彈數(shù)量 void speedUp(int s)/【代碼3 /s+speed賦值給speedvoid speedDown(int d)if(speed-d=0)/【代碼4 /d-speed賦值給speedelsespeed=0;int getBulletAmount() return bulletAmount;void setBulletAmount

5、(int m) bulletAmount = m;double getSpeed() return speed;void fire()if(bulletAmount=1)/ 【代碼5】 / 將 bulletAmount-1 賦值給 bulletAmountSystem.out.println( 打出一發(fā)炮彈);elseSystem.out.println( 沒有炮彈了,無法開火);Fight.javapublic class Fight public static void main(String args) Tank tank1,tank2;tank1=new Tank();tank2=ne

6、w Tank();tank1.setBulletAmount(10);tank2.setBulletAmount(10);System.out.println(tank1 的炮彈數(shù)量:+tank1.getBulletAmount();System.out.println(tank2 的炮彈數(shù)量:+tank2.getBulletAmount();tank1.speedUp(80);tank2.speedUp(90);System.out.println(tank1 目前的速度:+tank1.getSpeed();System.out.println(tank2 目前的速度:+tank2.getS

7、peed();tank1.speedDown(15);tank2.speedDown(30);System.out.println(tank1 目前的速度:+tank1.getSpeed();System.out.println(tank2 目前的速度:+tank2.getSpeed();System.out.println(tank1 開火:);tank1.fire();System.out.println(tank2 開火:);tank2.fire();System.out.println(tank1 的炮彈數(shù)量:+tank1.getBulletAmount();System.out.pr

8、intln(tank2 的炮彈數(shù)量:+tank2.getBulletAmount();實驗 2 計算機與光盤模板代碼CD.javapublic class CD int size;int content;public void setSize(int size)this.size=size;content=new intsize;public int getSize()return size;public int getContent() return content;public void setContent(int b) int min=Math.min(content.length,b

9、.length);for(int i=0;imin;i+) contenti=bi;Computer.javapublic class Computer int data;CD includCD;public void putCD(CD cd)includCD=cd;int size=includCD.getSize();data=new intsize;void copyToComputer()int b=includCD.getContent();int min=Math.min(data.length,b.length);for(int i=0;idata.length;i+) data

10、i=bi;public void addData(int m)for(int i=0;idata.length;i+) datai=datai+m;void copyToCD()includCD.setContent(data);void showData()for(int i=0;idata.length;i+)System.out.printf(%3d,datai);User.javapublic class User public static void main(String args) CD dataCD=new CD();int b=1,2,3,4,5,6,7,8;dataCD.s

11、etSize(b.length);dataCD.setContent(b);int a=dataCD.getContent();System.out.println(dataCD 上的內(nèi)容: );for(int i=0;ia.length;i+)System.out.printf(%3d,ai);Computer computerIMB=new Computer();【代碼 1 】 /computerIMB 調(diào)用 putCD(CD cd) 方法,將 dataCD 的引用傳遞給cdSystem.out.println(n 將 dataCD 的數(shù)據(jù)復(fù)制到計算機: computerIMB.);【代碼

12、 2 】 /computerIMB 調(diào)用 copyToComputer() 方法System.out.println(computerIMB 上的內(nèi)容: );computerIMB.showData();int m=12;System.out.println(ncomputerIMB 將每個數(shù)據(jù)增加+m);computerIMB.addData(m);System.out.println(computerIMB 將增值后的數(shù)據(jù)復(fù)制到 CD: dataCD);【代碼 3】 /computerIMB 調(diào)用 copyToCD() 方法System.out.println(dataCD 上的內(nèi)容: )

13、;a=dataCD.getContent();for(int i=0;ia.length;i+)System.out.printf(%3d,ai);實驗 3 家族的姓氏模板代碼FamilyPerson.javapublic class FamilyPerson static String surname;String name;public static void setSurname(String s) surname = s;public void setName(String s) = s;MainClass.javapublic class MainClass pu

14、blic static void main(String args) 【代碼1】用類名FamilyPerson訪問surname,并為surname賦值:李 FamilyPerson father,sonOne,sonTwo;father=new FamilyPerson();sonOne=new FamilyPerson();sonTwo=new FamilyPerson();【代碼2】/father調(diào)用setName(String s),傳遞向陽sonOne.setNameC抗日);sonTwo.setName(抗戰(zhàn));System.out.println( 父親: +father.sur

15、name+);System.out.println( 大兒子:+sonOne.surname+sonO);System.out.println( 二兒子:+sonTwo.surname+sonT);【代碼 3】/father 調(diào)用 setName(String s),傳遞張System.out.println( 父親: +father.surname+);System.out.println( 大兒子:+sonOne.surname+sonO);System.out.println( 二兒子:+sonTwo.

16、surname+sonT);實驗 4 三角形、梯形和圓形的類封裝模板代碼AreaAndLength.javaclass Trangledouble sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c)【代碼1】/參數(shù)a,b,c分別賦值給sideA,sideB,sideCif( 【代碼2】 ) /a,b,c 構(gòu)成三角形的條件表達(dá)式3】 /給 boo 賦值。 else 【代碼4 】 /給boo 賦值。double getLength() 【代碼5】 /方法體,要求計算出

17、length 的值并返回 public double getArea() if(boo)double p=(sideA+sideB+sideC)/2.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC) ; return area;elseSystem.out.println( 不是一個三角形,不能計算面積);return 0; public void setABC(double a,double b,double c)【代碼6】/參數(shù)a,b,c分別賦值給sideA,sideB,sideCif( 【代碼 7】 ) /a,b,c 構(gòu)成三角形的條件表達(dá)式

18、 【代碼8】 /給 boo 賦值。 else 【代碼9 】 /給boo 賦值。class Laderdouble above,bottom,height,area;Lader(double a,double b,double h)【代碼10方法體,將參數(shù)a,b,c分別賦值給above,bottom,heightdouble getArea()【代碼11方法體,要求計算出area返回class Circledouble radius,area;Circle(double r)【代碼 12 】 /方法體double getArea()【代碼13】 / 方法體,要求計算出area 返回double

19、getLength()【代碼 14】 /getArea 方法體的代碼 ,要求計算出 length 返回 void setRadius(double newRadius)radius=newRadius;double getRadius()return radius;public class AreaAndLengthpublic static void main(String args)double length,area;Circle circle=null;Trangle trangle;Lader lader;【代碼 15 】 /創(chuàng)建對象 circle【代碼16 】 /創(chuàng)建對象trang

20、le ?!敬a17 】 /創(chuàng)建對象lader【代碼18】 / circle 調(diào)用方法返回周長并賦值給lengthSystem.out.println( 圓的周長:+length);【代碼19】 / circle 調(diào)用方法返回面積并賦值給areaSystem.out.println( 圓的面積:+area);【代碼 20 】 / trangle 調(diào)用方法返回周長并賦值給lengthSystem.out.println( 三角形的周長:+length);【代碼 21 】 / trangle 調(diào)用方法返回面積并賦值給areaSystem.out.println( 三角形的面積:+area);【代碼22】 lader調(diào)用方法返回面積并賦值給areaSystem.out.println( 梯形的面積:+area);【代碼 23 】 / trangle 調(diào)用方法設(shè)置三個邊,要求將三個邊修改為 12,34,1?!敬a 24 】 / trangle 調(diào)用方法返回面積并賦值給areaSystem.out.println( 三角形的面積:+area);【代碼 25 】 / trangle 調(diào)用方法返回周長并賦值給lengthSystem.out.println(三角

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論