Java類及對(duì)象實(shí)驗(yàn)報(bào)告_第1頁
Java類及對(duì)象實(shí)驗(yàn)報(bào)告_第2頁
Java類及對(duì)象實(shí)驗(yàn)報(bào)告_第3頁
Java類及對(duì)象實(shí)驗(yàn)報(bào)告_第4頁
Java類及對(duì)象實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

-.z.**郵電大學(xué)(計(jì)算機(jī)學(xué)院)課實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:類與對(duì)象專業(yè)名稱:計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):計(jì)科1405班學(xué)生:高宏偉學(xué)號(hào):04141152指導(dǎo)教師:霞林一、實(shí)驗(yàn)?zāi)康耐ㄟ^編程和上機(jī)實(shí)驗(yàn)理解Java語言是如何體現(xiàn)面向?qū)ο缶幊袒舅枷?,了解類的封裝方法,以及如何創(chuàng)建類和對(duì)象,了解成員變量和成員方法的特性,掌握OOP方式進(jìn)行程序設(shè)計(jì)的方法。二、實(shí)驗(yàn)要求編寫一個(gè)創(chuàng)建對(duì)象和使用對(duì)象的方法的程序。編寫一個(gè)包含類成員和示例成員的程序。編寫一個(gè)使用Java包的程序。三、實(shí)驗(yàn)容(一)三角形、梯形和圓形的類封裝實(shí)驗(yàn)要求:編寫一個(gè)Java應(yīng)用程序,該程序中有3個(gè)類:Trangle、Leder和Circle,分別用來刻畫“三角形”、“梯形”和“圓形”。具體要求如下:a) Trangle類具有類型為double的三個(gè)邊,以及周長、面積屬性,Trangle類具有返回周長、面積以及修改三個(gè)邊的功能。另外,Trangle類還具有一個(gè)boolean型的屬性,該屬性用來判斷三個(gè)屬能否構(gòu)成一個(gè)三角形。b) Lader類具有類型double的上底、下底、高、面積屬性,具有返回面積的功能。c) Circle類具有類型為double的半徑、周長和面積屬性,具有返回周長、面積的功能。程序模板:AreaAndLength.javaclassTrangle{doublesideA,sideB,sideC,area,length;booleanboo;publicTrangle(doublea,doubleb,doublec){this.sideA=a;//【代碼1】參數(shù)a,b,c分別賦值給sideA,sideB,sideC this.sideB=b; this.sideC=c;if((sideA+sideB)>sideC&&(sideC+sideB)>sideA&&(sideC+sideA)>sideB)//【代碼2】a,b,c構(gòu)成三角形的條件表達(dá)式{boo=true;//【代碼3】給boo賦值。}else{boo=false;【代碼4】//給boo賦值。}}doublegetLength(){returnsideA+sideB+sideC;【代碼5】//方法體,要求計(jì)算出length的值并返回}publicdoublegetArea(){if(boo){doublep=(sideA+sideB+sideC)/2.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));returnarea;}else{System.out.println("不是一個(gè)三角形,不能計(jì)算面積");return0;}}publicvoidsetABC(doublea,doubleb,doublec){this.sideA=a; this.sideB=b; this.sideC=c;//【代碼6】參數(shù)a,b,c分別賦值給sideA,sideB,sideCif((sideA+sideB)>sideC&&(sideC+sideB)>sideA&&(sideC+sideA)>sideB【代碼7】)//a,b,c構(gòu)成三角形的條件表達(dá)式{boo=true;【代碼8】//給boo賦值。}else{boo=false;【代碼9】//給boo賦值。}}}classLader{doubleabove,bottom,height,area;Lader(doublea,doubleb,doubleh){this.above=a; this.bottom=b; this.height=h;【代碼10】//方法體,將參數(shù)a,b,c分別賦值給above,bottom,height}doublegetArea(){return(above+bottom)*height/2;【代碼11】//方法體,,要求計(jì)算出area返回}}classCircle{doubleradius,area;Circle(doubler){this.radius=r;【代碼12】//方法體}doublegetArea(){returnMath.PI*radius*radius;//【代碼13】方法體,要求計(jì)算出area返回}doublegetLength(){returnMath.PI*2*radius;//【代碼14】getArea方法體的代碼,要求計(jì)算出length返回}voidsetRadius(doublenewRadius){radius=newRadius;}doublegetRadius(){returnradius;}}publicclassAreaAndLength{publicstaticvoidmain(Stringargs[]){doublelength,area;Circlecircle=null;Trangletrangle;Laderlader;circle=newCircle(5);【代碼15】//創(chuàng)建對(duì)象circletrangle=newTrangle(3,4,5);【代碼16】//創(chuàng)建對(duì)象trangle。lader=newLader(2,3,4);【代碼17】//創(chuàng)建對(duì)象laderlength=circle.getLength(); System.out.println("圓的周長:"+length); area=circle.getArea(); System.out.println("圓的面積:"+area); length=trangle.getLength(); System.out.println("三角形的周長:"+length); area=trangle.getArea(); System.out.println("三角形的面積:"+area); area=lader.getArea(); System.out.println("梯形的面積:"+area); trangle.setABC(12,34,1); area=trangle.getArea(); System.out.println("三角形的面積:"+area); length=trangle.getLength(); System.out.println("三角形的周長:"+length);}}實(shí)驗(yàn)后的練習(xí):1.程序中僅僅省略【代碼15】,編譯能通過嗎? 不能通過,提示如下E*ceptioninthread"main"java.lang.Error:Unresolvedpilationproblems: ThelocalvariablecirclemaynothavebeeninitializedThelocalvariablecirclemaynothavebeeninitialized atAreaAndLength.Trangle$AreaAndLength.main(Trangle.java:85)2.程序中僅僅省略【代碼16】,編譯能通過嗎? 不能通過,提示如下E*ceptioninthread"main"java.lang.Error:Unresolvedpilationproblems: Thelocalvariabletranglemaynothavebeeninitialized Thelocalvariabletranglemaynothavebeeninitialized Thelocalvariabletranglemaynothavebeeninitialized Thelocalvariabletranglemaynothavebeeninitialized ThelocalvariabletranglemaynothavebeeninitializedatAreaAndLength.Trangle$AreaAndLength.main(Trangle.java:89)3.程序中僅僅省略【代碼15】,運(yùn)行時(shí)出現(xiàn)怎樣的異常提示?E*ceptioninthread"main"java.lang.Error:Unresolvedpilationproblems: Thelocalvariablecirclemaynothavebeeninitialized Thelocalvariablecirclemaynothavebeeninitialized atAreaAndLength.Trangle$AreaAndLength.main(Trangle.java:85)給Trangle類增加3個(gè)方法,分別用來返回3個(gè)邊:sideA、sideB和sideC。doublegetsideA(){returnsideA;} doublegetsideB(){returnsideB;} doublegetsideC(){returnsideC;}讓AreaAndLength類中的circle對(duì)象調(diào)用方法修改半徑,然后輸出修改后的半徑以及修改半徑后的圓的面積和周長。circle.setRadius(3);System.out.println("修改后的半徑為"+circle.getRadius());System.out.println("修改后的面積為"+circle.getArea());System.out.println("修改后的周長為"+circle.getLength());(二)實(shí)例成員與類成員。實(shí)驗(yàn)要求:按程序模板的要求編寫源文件,要特別注意程序的輸出結(jié)果,并能正確解釋輸出的結(jié)果。程序運(yùn)行效果示例: 程序運(yùn)行效果如下圖所示:程序模板:E*ample.javaclassA{【代碼1】//聲明一個(gè)float型實(shí)例變量a【代碼2】//聲明一個(gè)float型類變量b,voidsetA(floata){【代碼3】//將參數(shù)a的值賦值給成員變量a}voidsetB(floatb){【代碼4】//將參數(shù)b的值賦值給成員變量b}floatgetA(){returna;}floatgetB(){returnb;}voidinputA(){System.out.println(a);}staticvoidinputB(){System.out.println(b);}}publicclassE*ample{publicstaticvoidmain(Stringargs[]){A.b=100; //通過類名操作類變量b,并賦值100 A.inputB();//通過類名調(diào)用方法inputB() Acat=newA(); Adog=newA(); cat.setA(200); //cat調(diào)用方法setA(inta)將cat的成員a的值設(shè)置為200 cat.setB(400); //cat調(diào)用方法setB(intb)將cat的成員b的值設(shè)置為400 dog.setA(150); //dog調(diào)用方法setA(inta)將dog的成員a的值設(shè)置為150 dog.setB(300); //dog調(diào)用方法setB(intb)將dog的成員b的值設(shè)置為300 cat.inputA(); //cat調(diào)用inputA()。 cat.inputB(); //cat調(diào)用inputB()。 dog.inputA(); //dog調(diào)用inputA()。 dog.inputB(); //dog調(diào)用inputB()。}}實(shí)驗(yàn)后的練習(xí):1.將inputA()方法中的System.out.println(a);改寫為System.out.println(a+b);編譯是否出錯(cuò)?為什么?不會(huì),可以在非靜態(tài)方法中引用靜態(tài)變量。2.將inputB()方法中的System.out.println(b);改寫為System.out.println(a+b);編譯是否報(bào)錯(cuò)?為什么?會(huì),無法在靜態(tài)方法中引用非靜態(tài)變量。(三)使用package語句與import語句。實(shí)驗(yàn)要求:按實(shí)驗(yàn)要求使用package語句,并用import語句使用Java平臺(tái)提供的包中的類以及自定義包中的類。掌握一些重要的操作步驟。程序模板:模板1:將模板1給出的Java源文件命名為SquareEquation.java,將編譯后得到的字節(jié)碼文件復(fù)制到c:\1000\tom\jiafei目錄中。SquareEquation.javapackagetom.jiafei;publicclassSquareEquation{doublea,b,c;doubleroot1,root2;booleanboo;publicSquareEquation(doublea,doubleb,doublec){this.a=a;this.b=b;this.c=c;if(a!=0){boo=true;}else{boo=false;}}publicvoidgetRoots(){if(boo){System.out.println("是一元2次方程");doubledisk=b*b-4*a*c;if(disk>=0){root1=(-b+Math.sqrt(disk))/(2*a);root2=(-b-Math.sqrt(disk))/(2*a);System.out.printf("方程的根:%f,%f\n",root1,root2);}else{System.out.printf("方程沒有實(shí)根\n");}}else{System.out.println("不是一元2次方程");}}publicvoidsetCoefficient(doublea,doubleb,doublec){this.a=a;this.b=b;this.c=c;if(a!=0){boo=true;}else{boo=false;}}}模板2:將模板

溫馨提示

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