實(shí)驗(yàn)四-類與對(duì)象_第1頁
實(shí)驗(yàn)四-類與對(duì)象_第2頁
實(shí)驗(yàn)四-類與對(duì)象_第3頁
實(shí)驗(yàn)四-類與對(duì)象_第4頁
實(shí)驗(yàn)四-類與對(duì)象_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

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

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

4、件,把實(shí)驗(yàn)所得文件一起打包上交。 (壓縮 包的文件名為:學(xué)號(hào)后三位和名字開頭字母,如 109zhhRAR|ZIP)實(shí)驗(yàn) 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賦值給 speed elsespeed=0;int ge

5、tBulletAmount() return bulletAmount;void setBulletAmount(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 F

6、ight public static void main(String args) Tank tank1,tank2;tank1=new Tank();tank2=new Tank();tank1.setBulletAmount(10);tank2.setBulletAmount(10);System.out.println("tank1 的炮彈數(shù)量: "+tank1.getBulletAmount();System.out.println("tank2 的炮彈數(shù)量: "+tank2.getBulletAmount(); tank1.speedUp(80

7、);tank2.speedUp(90);System.out.println("tank1 目前的速度: "+tank1.getSpeed();System.out.println("tank2 目前的速度: "+tank2.getSpeed();tank1.speedDown(15);tank2.speedDown(30);System.out.println("tank1 目前的速度: "+tank1.getSpeed();System.out.println("tank2 目前的速度: "+tank2.get

8、Speed();System.out.println("tank1 開火: ");tank1.fire();System.out.println("tank2 開火: ");tank2.fire();System.out.println("tank1 的炮彈數(shù)量: "+tank1.getBulletAmount();System.out.println("tank2 的炮彈數(shù)量: "+tank2.getBulletAmount(); 實(shí)驗(yàn) 2 計(jì)算機(jī)與光盤模板代碼CD.javapublic class CD int

9、 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.length);for(int i=0;i<min;i+)contenti=bi;Computer.javapublic class Computer int

10、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;i<data.length;i+) datai=bi;public void addData(int m)for(int i=0;i<data.length;i+) datai=datai+m

11、;void copyToCD()includCD.setContent(data);void showData()for(int i=0;i<data.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.setSize(b.length);dataCD.setContent(b);int a=dataCD.getCon

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

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

14、println("dataCD 上的內(nèi)容: ");a=dataCD.getContent();for(int i=0;i<a.length;i+)System.out.printf("%3d",ai);實(shí)驗(yàn) 3 家族的姓氏模板代碼FamilyPerson.javapublic class FamilyPerson static String surname;String name;public static void setSurname(String s) surname = s;public void setName(String s) thi

15、 = s;MainClass.javapublic class MainClass public 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),傳

16、遞 "向陽 " sonOne.setName("抗日 "); sonTwo.setName("抗戰(zhàn) ");System.out.println(" 父親: "+father.surname+); System.out.println(" 大兒子: "+sonOne.surname+sonO); System.out.println(" 二兒子: "+sonTwo.surname+sonT);【代碼 3】 /father 調(diào)用

17、setName(String s),傳遞 "張" System.out.println(" 父親: "+father.surname+); System.out.println(" 大兒子: "+sonOne.surname+sonO); System.out.println(" 二兒子: "+sonTwo.surname+sonT);實(shí)驗(yàn) 4 三角形、梯形和圓形的類封裝模板代碼AreaAndLength.javaclass Trangledouble sideA,

18、sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c)【代碼 1 】 / 參數(shù) a,b,c 分別賦值給 sideA,sideB,sideC if( 【代碼 2】) /a,b,c 構(gòu)成三角形的條件表達(dá)式 代碼 3】 /給 boo 賦值else【代碼 4】 /給 boo 賦值。double getLength()【代碼 5】 /方法體,要求計(jì)算出 length 的值并返回public double getArea()if(boo)double p=(sideA+sideB+sideC)/2.0;a

19、rea=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC) ;return area;elseSystem.out.println(" 不是一個(gè)三角形 ,不能計(jì)算面積 ");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á)式【代碼 8】 /給 boo 賦值。else【代碼 9】 /給 boo 賦值。class Laderdouble abov

20、e,bottom,height,area;Lader(double a,double b,double h)代碼 10】 /方法體,將參數(shù) a,b,c 分別賦值給 above,bottom,heightdouble getArea()【代碼 11】 /方法體, ,要求計(jì)算出 area 返回class Circledouble radius,area;Circle(double r)【代碼 12】 /方法體double getArea()【代碼 13】 /方法體,要求計(jì)算出 area 返回double getLength()length 返回【代碼 14】 /getArea 方法體的代碼 ,要求

21、計(jì)算出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)建對(duì)象 circle【代碼 16】 /創(chuàng)建對(duì)象 trangle。【代碼 17】 /創(chuàng)建對(duì)象 lader【代碼 18】/ circle 調(diào)用方法返回周長并賦

22、值給 length System.out.println(" 圓的周長 :"+length);【代碼 19】 / circle 調(diào)用方法返回面積并賦值給 area System.out.println(" 圓的面積 :"+area);【代碼 20】 / trangle 調(diào)用方法返回周長并賦值給 lengthSystem.out.println(" 三角形的周長 :"+length);【代碼 21】/ trangle 調(diào)用方法返回面積并賦值給 areaSystem.out.println(" 三角形的面積 :"+area);【代碼 22】 / lader調(diào)用方法返回面積并賦值給 area System.out.println(" 梯形的面積 :"+area);【代碼 23】 / trangle 調(diào)用方法設(shè)置三個(gè)邊,要求將 三個(gè)邊修改為 12,34,1。【代碼 24】/ trangle 調(diào)用方法返回面積并賦值給 area System.out.println(" 三角形的面積 :"+area);【代碼 25】 / trangle 調(diào)用方法返回周長并賦值給 lengthSystem.out.println (&

溫馨提示

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