《面向對象程序設計》實驗指導書_第1頁
《面向對象程序設計》實驗指導書_第2頁
《面向對象程序設計》實驗指導書_第3頁
《面向對象程序設計》實驗指導書_第4頁
《面向對象程序設計》實驗指導書_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

面向對象程序設計》實驗指導書郭玉柱廣東商學院信息學院二0一0年十二月目錄實驗一Java基礎實驗實驗二Java面向對象特性試驗--Java中的類、對象和方法實驗三類的繼承、多態(tài)、接口、訪問控制符與修飾符實驗四Java資源及其利用實驗五Java語言的異常處理實驗六輸入輸出流實驗七圖形用戶界面設計實驗八JavaApplet及多線程試驗附錄1實驗報告格式實驗一Java基礎實驗、實驗目的與要求學習編寫簡單的Java程序。學習掌握Java基本數據類型及其基本運算。學習掌握Java的基本流程控制語句。、相關知識了解JDK的工作環(huán)境,以及如何使用JDK進行編程。熟悉集成軟件eclipse3.5及其使用。、實驗內容編寫Hello.java程序并運行。用Java語言編寫一個應用程序在屏幕上輸出1000之內的素數。一個數如果恰好等于它的因子之和,這個數就稱為“完數”,比如28=1+2+4+7+14編寫一個應用程序在屏幕上輸出1000之內的完數。求滿足1!+2!+3!+???+n!W9999的最大整數n。一個三位的整數如果它的各位數字的立方之和等于這個三位數,就稱此數為水仙花數,比如371=33+73+13,編寫一個應用程序在屏幕上輸出所有水仙花數。下面程序的輸出結果是什么?"寫出程序運行結果(TestE.java)publicclassTestE{puhlicstaticvoidmain(Stringarg[]){charc=1\□1;for(inti=l;i<=4;i++){switch(i){case1:c=|你|;System.out.printIn(c);case2:c=11;System.out.printIn(c);break;case3:c=11;System.out.printIn(c);default:System,out.println(Fr!;實驗二Java面向對象特性試驗-Java中的類、對象和方法一、實驗目的與要求掌握類的定義和使用。掌握對象的聲明、創(chuàng)建和使用。掌握構造方法的定義和使用。掌握類方法(靜態(tài)方法)和非類方法(非靜態(tài)方法)的區(qū)別和使用掌握成員變量和局部變量的區(qū)別和使用。二、實驗內容1.編寫一個Java程序,定義一個表示學生的類,類名Student,其成員變量有:學號、班級姓名、性別、年齡;成員方法:(1)獲得班號(2)獲得姓名(3)獲得年齡(4)修改年齡;創(chuàng)建一個Student的對象,修改該對象的年齡,并輸出該對象的年齡。在Student.Java文件為Student類定義構造方法,用于初始化所有成員變量,增加一個方法toString(),它的返回值是String,其功能是把一個Student類的對象的成員變量信息組合成一個字符串并輸出。簡述構造函數的作用和特點。下面是某同學為Student類編寫的一個構造函數,請指出那些地方有錯誤:voidStudent(intsno,Stringsname){studentNo=sno;studentName=sname;returnsno;}4.編寫一個日期類Date,要求:(1)日期類Date的成員變量有:year,month,day都是int型。2)日期類的方法有:構造方法Date(),日期的默認值為2008年1月1日;構造方法Date(inty,intm,intd),形參y,m,d分別為某個日期的年月日的初始值;成員方法intgetYfear():獲取日期的年數作為方法的返回值;成員方法intgetMonth():獲取日期的月份作為方法的返回值;成員方法intgetYfear():獲取日期的日作為方法的返回值;成員方法voidshowDate():已“****年**月**日”的形式顯示一個日期。5.下面四個程序分別有什么錯誤?publicclassShowErrors{publicstaticvoidmain(Stringarg[]){ShowErrorst=newShowErrors(5);publicclassShowErrors{publicstaticvoidmain(Stringarg[]){ShowErrorst=newShowErrors(5);publicclassShowErrors{publicstaticvoidmain(Stringarg[]){ShowErrorst=newShowErrors();t.x();}}publicclassShowErrors{publicvoidmethodl(){Circlec;System.out.println(publicclassShowErrors{publicvoidmethodl(){Circlec;System.out.println(“Whatisradius"+c.getRadius());c=newCircle;}}3)publicclassShowErrors{publicstaticvoidmain(Stringarg[]){Cc=newC(5.0);system.out.println(c.value);}}classC{intvalue=2;}4)下列代碼有什么錯誤?廢裁Test(JEJjyfefcstaticvoidmain(String[]{□Aa=newAQ;屮a/printf);a加曲{」Strings;4址StWA)”this.s=s;4}4戚驗voidprintO”System,outprintlnfs);卩1」下列程序的輸出是什么?戚驗由曲伽{屮privateBooleanx;心publicstaticvoidmain(String[]箋熾){"Foofoo=nev7Foo();4SsYtem.outprintkL(foo.x);卩System.out.println(f.i);System.out.println(f.s);f.imethod();f.smethod();System.out.println(Foo.i);System.out.println(Foo.s);Foo.imethod();Foo.smethod();8.System.out.println(f.i);System.out.println(f.s);f.imethod();f.smethod();System.out.println(Foo.i);System.out.println(Foo.s);Foo.imethod();Foo.smethod();publicclassFoo{inti;staticStrings;voidimethod(){}staticvoidsmethod(){}}9.如果合適的話,在“?”處加入static關鍵字。誠J疏classTest?privateintcount;4publi匚?voidmainfStringr1args){」 +Jreturncount;心戚應J如:factorial(j^ti){卩intresult=l:afortinti=l;i<=rai++){J■■■■.■■■.■■■.■■■■■■■ ■■■■■■■■■■■■result*^;4}4 “returnresult;屮}J是否能在靜態(tài)方法中調用成員方法或引用成員變量?是否能在成員方法中調用靜態(tài)方法或引用靜態(tài)變量?下面代碼的錯誤是什么?戚底classJEWfefcstaticvoidmain(Strmg[]趣){umethodi();心publicvoidmethodl(){」method^();4}中publicstaticvoidmethod^(){dSystem.ciutprintln(LLWhat{sradius"+匚.getRadiusO);4}pCirclec^newCircle();+1 描述傳遞基本類型參數和傳遞引用類型參數的區(qū)別。寫出下面程序的輸出:戚廳classCount{Jpublicintcount;戚廳classCount{Jpublicintcount;+■count=C;+■}」SO"count=l;屮}」M愿staticvoidmain(String[]觀總{*CountmyCount=^newCountO;屮inttimes=0;心fotfinti=0;i<100;i++>incrementfmyCount?times');屮System,out.println(JJcountisw+myCount,count);*-■System,out.printing"timesis??+times');屮}4pubEcstaticvoidincrementCountC,initimes){+JC.count++;屮times++:4寫出下列程序的輸出:Circle{Jdoubleradius;卩Circle(double嘶騒賊Uradius^navRadius:屮publicclassTest{」swatjlfcinclel?circle2);心System,out.printlnf^Afterswapl:circlel=w+circlel.radius+wcircle2=w+circle2.radius);swapXcwclelicircled);+■System,outnrintlnf^Afterswap2:circlel=^+circlel.radius+circle2=w+circled,radius);}屮publicstaticvoidswaplfCircle盜,Circle"Circletetnp=x;+■跨=y;屮yM.emp;屮}屮publicstaticvoidswapXCirclex,Circley){pdoubletemp=x.radius:屮radius=y.radius:py. radius=ternp:p}屮戚驗staticvoid贓(String[]破Circlecirclel=^newCirclefl);屮Circlecircle2=newCirclef^);+■

13.寫出下列四個程序各自的輸出:戚]粧classTest{+J誠焦classTest?Wjfefcstaticvoid颶n(String!1叔&Wjfefcstaticvoidmain(£triiig[]裁感)2mt[]a=(L?};d匹[2={1,?};dswap^afOJja[l]);屮swap(a);屮System,out.迎rinthfa[01=w+a[01pSystem,out.println("a[Cl]="4-arOl+J+"a[ll=w+a[l]);屮+J[l]=z+a[l]);4}ppublicstaticvoidswapfintnl,int口乃{卩WjfefcStaticvoidswap(如[]a){^inttemp^nl;ainttemp=a[0];屮nl=4i2:屮a[0H[l];屮n2=temp;4a[l]=temp;4}*}」(4)屮⑴ ⑵4(4)屮期嗾弘弗Test{d期嗾由礙Testp刃迦也staticvoid釀n(£tmg[]叔{?publicstaticvoidmain(Stnng[]ar^){屮Tt=^newT0;卩Ttl^newT();4swap(t);4Tt2=neivT();dSystem,out.nrintlnf"亡1="+t.el」System,out.nrintlnf"tfsi="+」+"e2=w+t.e2);ptl.i+"andj=w+tl.j);屮}4System,out.printing"t2‘si="+pstaticvoidswap(T◎{"tWandj='+t2.j);心inttemp=t.el;屮}4t.el=t.e2:屮}屮t.e2=temp:屮瞬.T”}dstaticInti=0;屮■■■■}dintj=0;屮classT{+JT(){Pintel=l;a!++;屮inte2=2;d汽;4}」}p}屮(3)屮14.下列程序的輸出是什么?publicclassFoo{staticinti=0;+1staticintj=0;+■staticvoidmam(String[]賤)2inti=2;4intA3;屮intj=3;4System,out.println(:i+jis:"+i+j);p押k=i+j;+JSystem,out.衛(wèi)rintln("kis"+k);心System,out.printlnf^jis"+J);卩A15.描述關鍵字this的作用,下列代碼有什么錯誤?publicclassC{intp;publicvoidsetP(intp){p=p;}}編寫名為Rectangle的類表示矩形,這個類包括:?一個double類型的數據域width和height表示矩形的寬和高,它們的默認值都為1;?String類型的數據域color表示矩形的顏色,進一步假設所有矩形的顏色都是相同的,默認顏色為白色;?無參構造方法創(chuàng)建默認矩形;?一個構造方法創(chuàng)建指定width和height的矩形;?所有三個數據域的訪問器方法和修改器方法;getArea()方法返回該矩形的面積;getPerimeter()方法返回它的周長;編寫一個測試程序,創(chuàng)建兩個Rectangle對象,設置第一個對象的寬為4,高為40,第二個對象的寬為3.5,高為35.9,所有Rectangle對象的顏色為紅色。顯示兩個對象的屬性并求它們的面積和周長。設計一個名為Fan的類模擬風扇。這個類包括:?三個常量SLOW,MEDIUM好FAST,其值分別為1,2,3,表示風扇的速度;?int類型的數據域speed表示風扇的速度(默認值為SLOW);boolean型的數據域on表示風扇是否打開(默認值為false);double型的數據域radlus表示風扇的半徑(默認值為5);string型的數據域color表示風扇的顏色(默認值為blue);?無參構造方法創(chuàng)建默認風扇;?全部四個數據域的訪問器和修改器;?toString()方法返回描述風扇的字符串。如果風扇打開,該方法用一個組合的字符串返回風扇的速度、顏色和半徑;否則,用一個組合的字符串和“fanisoff”一起返回風扇的顏色和半徑。編寫一個測試程序,創(chuàng)建兩個Fan對象,將第一個對象設置為最大速度,半徑為10,顏色為yellow,打開狀態(tài);第二個對象為中等速度,半徑為5,顏色為blue,關閉狀態(tài)。通過調用toString方法顯示該兩對象。設計一個名為Account的類模擬賬戶,它包括:?int型數據域id表示賬號(默認值為0);double型數據域balance表示賬戶余額(默認值為0);double型數據域annuallnterestRate存儲當前年利率(默認值為0);Date型數據域dateCreated存儲賬戶開戶的日期;?無參構造方法創(chuàng)建一個默認的賬戶;id,balance和annualInterstRate的訪問器和修改器;dateCreated的訪問器;getMonthlylnterestRate()方法返回月利率;withDraw方法從賬戶提取特定數額的款;deposit方法向賬戶存特定數額的款;編寫一個測試程序,創(chuàng)建一個賬號為1122、余額為20000、年利率為4.5%的Account對象。使用withDraw方法提款2500元,使用deposit方法存款3000元,并打印余額和月利率,以及該賬戶的開戶日期。設計名為Stock的類模擬股票,該類包括:string型數據域symbol表示股票代號;string型數據域name表示股票的名稱;double型數據域preViousclosingPrice存儲前一天的股票價格;double型數據域currentPrice存儲當前時間的股票價格;?一個構造方法根據指定的股票代號和名稱創(chuàng)建股票;?所有數據域的訪問器方法;previousClosingPrice和currentPrice的修改器方法;changePercent()方法返回從previousClosingPrice變?yōu)閏urrentPrice的百分比;編寫測試程序創(chuàng)建Stock對象,其股票代號為SUNW、名稱為SunMicrosystemInc.、上期收盤價為100。設置新的當前價為90,顯示價格變化百分比。編寫程序,輸入年份,打印出該年的年歷(12個月的),如下圖所示。提示:使用Calendar類得到一個Calendar類對象,先求出輸入年份的1月1日是星期幾,然后通過循環(huán)打印出每個月的日歷,注意大小月和閏月問題。Pleaseinputeui's:2009Month*snajTL?isJanuraySunMonThuWed TheFriSat123456789101112131415lb1713192021222324252628293031MontliLsnorneisFebuarySunMonThuWedTheFriSat12345689w11121314151617181920212223242526272S設計名為Time的類。該類包含:?數據域hour、minute和second表示時間;?無參構造方法為當前時間創(chuàng)建Time對象;(數據域的值表示當前的時間)?一個構造方法在指定以毫秒表示的、從1970年1月1日午夜開始已逝去的時間時,創(chuàng)建一個Time對象;(數據域的值表示該時間)?三個get方法分別獲得數據域hour,minute和second;編寫測試程序創(chuàng)建兩個Time對象(使用newTime()和newTime(555550000)),并顯示它們的小時、分鐘和秒。提示:無參構造方法可以使用當前時間,當前時間可以通過System.currentTimeMillis()獲得。另外一個構造方法為指定逝去的時間設置小時、分鐘和秒的值。例如,如果逝去的時間555550000毫秒,那么小時為10,分鐘為19,秒為10。設計名為MyInteger的類,它包括:int型數據域value存儲該對象表示的int值;?一個構造方法,當指定int值時,創(chuàng)建MyInteger對象;?一個get方法返回int的值;isEven(),isOdd()和isPrime()方法,如果這個值分別為偶、奇或素數,返回true;?靜態(tài)方法isEven(int),isOdd(int)和isPrime(int),如果指定的值分別為偶、奇或素數,返回true;?靜態(tài)方法isEven(MyInteger),isOdd(MyInteger)和isPrime(MyInteger),如果指定的值分別為偶、奇或素數,返回true。equals(int)和equals(MyInteger)方法,如果該對象的值與指定的值相等,返回true;?靜態(tài)方法parseInt(int)將字符串轉變成int值。編寫用戶程序測試該類中的所有方法。設計名為MyPoint的類表示一個具有x坐標和y坐標的點,該類包括:?兩個數據域x和y表示坐標;?無參構造方法創(chuàng)建點(0,0);

?一個構造方法根據指定坐標創(chuàng)建一個點;?兩個get方法分別得到數據域x和y;distance方法返回MyPoint類型的兩個點之間的距離;distance方法返回從這一點到另一個指定x和y坐標的點之間的距離;編寫測試程序創(chuàng)建兩個點(0,0)和(10,30.5),并顯示它們之間的距離。24.請寫出下列程序的輸出結果//程序名TestAB.javaclassA!>'double±(doublexf_doubley){+Jreturnx+v;classBextendsA{Pdoublef(intx,inty){returnpublicclassTestInheritAB{+Jpublicstaticvoidinain(Stringargs[1){System.out.printlnjb.f(3,5))System.out.println(b.±(3.0,5.0));25.請寫出下列程序的輸出結果///程序名TestAB2.javaclassA:>'double£(doublex.doubley){+Jreturnx+y;staticintg(intn){h1returnn古n;classBextendsA{+Jdoublef(doublex,doubley){+Jdoublem=superdoublem=super.±(x,y);returnstaticintgstaticintg(intn){h1intin=A.ff(n)returntti+n;publicclassTestAB2{publicstaticvoidmain(Stringargs[1){+JBb=new;」System.out.println(b.±(lO.OrS.O))System.out.println(b.±(lO.OrS.O))26.設計名為Course的類,它包括:3個成員變量:課程編號(cNnumber)、課程名(Cname)、學分數(Cuit)?1個構造方法,用于初始化課程編號、課程名和學分1個方法:printCourseInfo(),用于輸出課程相關的信息編寫課程類的測試程序27.下面程序定義了一個Student類及其測試程序,請給出程序運行的結果//TestStudent.javaclassStudent{PStringname;|chargender;intage;PString[]courseNames;double[]courseScores;^-1publicStudent(){/V構造方法dname="unknownname!";4gender=1M1;+Jage=0;J■...-...■.Tl..-...-...-...-...courseNames=newString[31;courseScores=newdouble[3];+JcourseNames[□]="計算機n;4courseriames[11="數學rr;4courseNames[2]="英語";4courseScores[□]=courseScores[1]=courseScores[2]=□;}JPublicStudent(Stringn^chars^inta){//帶參數的構造方法屮name=n;」gender=s;dage=a;courseNames=newString[3];i-1=new詩匸£ing(”計算機=new詩匸£ing(”計算機”);」=new ■匸ing(”數學”)汀=newString(rr^i^r,);h1courseriames[□]courseNames[11courseNames[21courseScores[0]=□;courseScores[1]=0;^courseScores[2]=□;

publicvoidintroduceMe(){publicvoidintroduceMe(){/V成員方法+J詰里擊圖標有建來顯示拼寫建的名字是:”+n泗巳汀,r+agE);System.out.printIn「哦的性別和年齡分別是:”+g,r+agE);System.out.print.In("我的成績還沒有錄入Irr);puljlicclassTest.St.udentnulilicstaticvoidmain(String[largs){TvVvVvvX-VvV%- 、 —■L.-IVvW^tVvfStudentstul=newStudent()Studentst.u2=newStudent.(rr^lJ_|"f1M1,23);+JroduceMe();屮Syst-ein.out.printIn();roduceMe()實驗三類的繼承、多態(tài)、接口、訪問控制符與修飾符一、實驗目的與要求掌握繼承和多態(tài)這兩個面向對象程序的基本原則。2.理解interface關鍵字和接口的基本概念。3.理解abstract關鍵字,掌握抽象類和程序方法的設計技巧。理解final關鍵字,掌握最終類和抽象類的區(qū)別和使用。理解static關鍵字,理解類的層次和對象層次的區(qū)別,掌握類變量和類方法的使用。理解包的概念和使用。創(chuàng)建一個名為charpter3_2的包,將本實驗的程序放入該包中二、實驗內容設計一個Person類,其成員變量有:姓名(name)、性別(gender)、年齡(age);再設計一個Student類,它是類Person的子類,其成員變量有:學號(id)、班名(cname)、成績(score),類Student中要有一個方法display。,用來顯示一個學生的信息。編寫一個測試程序,創(chuàng)建一個Student類的對象,要求name和id是自己的姓名和學號,輸出學生的各種信息,學生的基本信息在類Student的帶參數的構造方法中設定。寫出下列程序運行結果classA{publicA(){Jf?■沁mm" ''Systein.out.println[FFA'sno-argconstructorisinvoked!,r)classBextendsA{}屮piiblicclassC{publicstaticvoidinain(Stringarg[l){Bb=new_Bj^);」下列程序在編譯時會出現什么問題?classA{」publicA(intx){}」classBextendsA{+JpublicB(){|}」nuhlicclassCTest{nuljlicstaticvoidmain(Stringarg[l){4.下列說法對還是錯?(1)4.下列說法對還是錯?(1)(2)(3)(4)子類是父類的一個子集。當從子類調用構造方法時,它的父類的無參數構造方法也常常被調用可以在子類覆蓋定義在父類中額私有方法??梢栽谧宇惛采w定義在父類中的靜態(tài)方法。5.指出下列類中的問題。(提示,至少有兩個問題)publicclassCircle{*-■privatedoubleradius;publicCircle(doubleradius){h1radiu3=radius;}ppublicdoublegetRadius(){returnradius;PpublicdoublegetArea(){+Jreturnradius*radius*Hath.PT;+} 4}4EextendsCircle{+JclassEextendsCircle{+Jprivatedoublelength;B(doubleradius,doublelength){f1、J"J".4" 、J"、J"J"J"、J"J"J"、J"J"1?"、J"J"J"、J"J"J"、J"J",、、 —*Circle(radius);length=lenCTt.h;Ppublicdoublegetarea(){+Jreturn±etArea()^length;}d6.寫出下列程序運行的結果:publicclassTest{publicstaticvoidmain(Stringargri){h1Aa=newA(3); 4■■.■■■■■ ■■.■■■.■■■A-rclassAextendsB{+JpublicA(intt){+JSystem.out.urintln[rrA'sconstructorisinvoked!rr);ggmmmym.?転mmmd 'classB{"publicB(){+JSvstern.out.衛(wèi)匸int■丄n("Bsconstructorisinvoked!rr);}4調用newA(3)時,會調用Object的構造方法嗎?4在下列代碼中,類A和類B在不同的包中。如果問號的位置用空白代替,類B能正常編譯嗎?如果問號的位置用private代替,類B能正常編譯嗎?如果問號的位置用protected代替,類B能正常編譯嗎?packagepl;4packagep2;+JnubileclassA{+JnubileclassBextendsA{? inti;d■./.. ■./..■..publicvoidtnl(String[1args){voidm(){JSystem.out.printInti)蟻);4}P}p}P}」8.寫出執(zhí)行Test.java結果。classA{4-classclassA{4-classBextendsA{」■mmeinti=l;inti=2;staticintj=3staticint_7=4;^voidin(){+Jvoidhi(){+Ji=5;+Ji=6^}4staticvoidml(){Jstaticvoidml(){+J5=7;^_j=s;4}P}4}」BtoclassTesti{4Svstern.out.衛(wèi)匸;Svstern.out.printIn(a.1)a.tti()a.itil[);Svstern.out.衛(wèi)匸;9.寫出執(zhí)行Testl.java、Test2.java結果。classA{inti=l;i-1staticinti=2;{System,out.print.In(rri=rr+i);}f1static{Svstern.out.println(Frj=,,=j);}

(2)10.寫出程序HidingDemo.java運行結果classHidingDeitio{puljlicstaticvoidmain(Stringargs[]){+JAx=new;Px?i="+:?:?i:i(B)x^i=?+((B)x).i);」System,out.urintln(rr(3)System,out.printIn(,r(4)x.i=rr+x.j);+J((B)x).j=rr+((B)x).衛(wèi)汕System,out.printIn(,r(5)System.out.printIn("i6)Ax.ml()=rr+x.ml())沖((E)x) ?+((B)x) ;x.m2()=r,+x.iti2());+Jx.m2()=r,+x.iti2());+JSystem,out.printIn(,r(8)}4classA{*publicpublic

pulilicinti=l;Jintj=ll;Stringml(){J

s類方法mlrr;」staticstaticreturnrrA'nuljlicStringTvvvvvvvv-v-.---.- —return,rA'm2(){-1s實例方法m2rr;」pulilicStringreturnrrA'm3()<Js實例方法m3rr;」classBextendsA{+Jpublicpublicnuljlicinti=2;+Jintj=12;i-1Stringml(){+J

s類方法ml”;4staticstaticreturn,rB1pulilicStringreturnrrB1判斷下列說法的對錯:?終極類可以有實例。?終極類可以擴展。?終極方法可以被覆蓋。?總可以成功地將子類的實例轉換為父類。m2(){-1s實例方法m2rr;」?總可以成功地將父類的實例轉換為子類。(Person、Student、Employee、Faculty和Staff類)設計名為Person的類和它的兩個子類Student和Employee。Employee有子類Faculty、Staff。人有姓名、地址、電話號碼和電子郵件地址。學生有班級狀態(tài)(一年級、二年級、三年級或四年級),將這些狀態(tài)定義為常量。職員有辦公室、工資和受聘日期。定義名為MyDate的類,包含數據域year(年)、month(月)day(日)。職員有辦公時間和級別,職員有職務稱號。覆蓋每個類中的toString方法顯示相應的類名和人名。編寫測試程序,創(chuàng)建Person,Student,Employee,Faculty和Staff,并調用它們的toString()方法。定義一個類A,該類有一個方法f,方法f可以輸出英文字母,再定義一個類B是A的子類,子類B不能重寫父類A的方法f,子類有一個方法g,可以輸出中文字符串。編寫測試程序,創(chuàng)建B的對象,輸出英文字母和中文字符串。定義一個類SA,該類有一個方法f():publicintf(int1,intb),該方法返回a和b的最大值。再定義該類的子類SB,要求子類重寫父類的方法f,重寫的方法將返回a和b的最小公倍數。要求在重寫的方法的方法體中首先調用被隱藏的方法返回a和b的最大公約數m,然后將乘積(a*b)/m返回。要求在測試程序中分別使用父類和子類創(chuàng)建對象,并分別調用方法f計算兩個正整數的最大公約數和最小公倍數。定義一個坐標類Pointer,成員變量包括x和y;成員方法有:(1、構造方法(2、setX、setY、getX、getY、display方法(3、toString(、、equals(、(4、類方法distance用來計算亮點之間的距離編寫測試程序,創(chuàng)建Pointer的兩個對象并計算兩個點坐標的中點。編寫程序.定義類Vfehlcles.屬性包括size、color、seats,還有一個構造方法和一個顯示信息的方法。然后從此類中派生Car類,其中包括構造方法和顯示信息的方法,并編寫程序進行測試。編寫個矩形類MyRectangle,其中包括方法getHeigth(獲得矩形的長度)、getWidth方法(獲得矩形的寬度)、setHeigth方法(設置矩形的長度)、setWidth方法(設置矩形的寬度)、getArea方法(求矩形的面積)和showlnfo方法(顯示矩形的格式),從矩形類派生出一個子類Mysquare代表正方形,并對gctArea()方法和showinfo()方法進行重寫。并編寫程序進行測試。主板上的PCI插槽就是顯示中的接口,可以把聲卡、顯卡、網卡都插在PCI插槽上,而不用擔心那個插槽是專門插哪個的。編寫程序實現這個原理。定義一個抽象類Area、兩個Area的子類RectArea和RoundArea,以及一個實現類ImpleArea。要求如下(1、抽象類Area類中只包含一個抽象方法doublearea()。子類RoundArea類通過覆蓋父類中的抽象方法area()來求圓的面積,另一個子類RectArea類通過覆蓋父類中的抽象方法area()求長方形的面積。圓的半徑和長方形的邊分別定義為子類RoundArea類和RectArea類的域,都為double婁型。ImpleArea類中創(chuàng)建對象,接收鍵盤輸入,輸入內容分別為圓的半徑和長方形的邊,并求出圓和長方形的面積,在屏幕上顯示。編寫一個Animal類,包含:(1)屬性:privateStringtype。(2)構造方法;用于初始化私有屬性type。(3)方法:publicstringtoString(),用于返回動物類型的信息publicvoidsound(),用于輸出動物的叫聲信息。21?編寫一個Flyable接口,包含:方法:doubleflySpeed(),用于返回最大的飛行速度。編寫Giede(老鷹)類和Pigeon(鴿子)類,分別繼承題16中的Animal類并實現20題中的F1yable接口。編寫測試程序,顯示輸出老鷹和鴿子的叫聲信息和最大飛行速度。編碼實現一個打印機監(jiān)視器,其中包括兩個布爾型域“墨盒用盡”、“最后一次后打印過10萬張紙”和一個方法“需要維修”。該方法在兩個布爾型域中有一個為返回真。編碼實現溫度類,其中包括4個方法,其中getFahrenheit()和getCelsius()返回華氏和攝氏溫度值,setFahrenhei()和setCelsius()分別設置華氏和攝氏溫度值。編碼實現地址簿類。每個對象中包括“姓名”、“地址”、“電話”三個域,并為該類定義相應的get,set方法。實驗四Java資源及其使用一、實驗目的與要求1.理解Java標準庫的結構。了解Java常用的包。掌握Object類的常用方法。掌握System類常用方法掌握Java的類庫的一些基本類及使用,如System、Math、String和BufferString等。理解Java包裝類的概念即使用。二、實驗內容設x,y是整型變量,d是雙精度型變量,試書寫表達式完成下面的操作:⑴求x的y次方。求x和y的最小值。求d取整后的結果。求d四舍五入后的結果。求atan(d)的數值。寫出下面程序運行結果,并解釋之。publicclassStringDemo{publicstaticvoidmain(Stringargs[]){Stringsl=FrHelloFr;Strings2=rrHellorr;Strings3=newString(,,Hello,r);Strings4=newString(;"相等否System,out.printIn(,r31==32: r,+iisl==s2));System,out.printIn(,,s3==s4: r,+(s3==s4));System,out.printIn(rrsl==s3:rr+(sl==s3));〃值相等否System.out.println(,rslequalss2:r,+sl.equals(s2));System.out.println(rrs3equalss4:rr+s3.equals(s4));System.out.println(rrslequalss3:rr+sl.equals(s3));Math的random方法用來實現什么功能?語句(int)(Math.random()*6)+l的作用是什么?編程生成100個1~6之間的隨機數,統(tǒng)計1?6每個數出現的概率;修改程序生成1000個隨機數并統(tǒng)計概率;比較不同的結果并給出結論。編程求一個整數數組的最大值、最小值、平均值和數組所有元素的和。編寫程序,從鍵盤上輸入一個字符串和一個指定字符,把字符串中所有與指定的字符相同的字符刪除后輸出。編寫程序,從鍵盤上輸入一個字符串和一個指定字符,統(tǒng)計字符串中出現指定字符次數并輸出。7?編寫程序,將字符串“LetusstudyJava”轉化為大寫、轉化成小寫、把字符串中的空格用符號“#”替換,并分別輸出。實驗五Java語言的異常處理、實驗目的與要求1.掌握Java的異常處理機制。2.掌握try、catch、throws和finally這5個關鍵字的用法。掌握成員的幾個異常類。掌握自定義異常的使用。、實驗內容1.編寫程序,從鍵盤上輸入兩個數。將第一個數除以第二個數并顯示結果;處理所有可能的異常。2.寫出下面程序運行的結果:"自定義異常classMyExceptionextendsException{Stringinessage;MyException(Stringstr){niessage=st.r;publicStringgetHessage(){returnmessage;abstractclassABC{abstractint±(intxfinty)throwsMyException;classSukiABCextendsABC{intf(intx,inty)throwsMyException{if(x>99||y>99){thrownewMfExu已“icin("乘數超過99!rr);L宀_.publicstaticvoidmain(Stringargs[]){ABCatoc;afcic=newSubABC();try{System,out.print.in(aJoc.f(12,8));System,out.println(atic.±(120^3));}catch(HyExceptione){Systetn.out.printIn(e.getHessage());3.寫出下列程序的輸出結果。

//TestOl.javapublicclassTestOl{publicstaticvoidmain(String[]args){try{for(inti=0;i<3;i++){System,out.printIn(,rthevalueofi:rr+i);System.out.println(5/i);}//endfor}catch(ArithineticExceptione){System,out.printIn(,rDivisionbyzero.”);for(inti=0;i<3;i++){try{System,out.println(rrThevalueofi:rr+i);System.out.println(5/i);}catch(ArithineticExceptione){System,out.printIn("Divisionbyzero.rr)}//endfor}//endinain()}//endclss有下列程序://TestOS-javapublicclassTest02{publicstaticvoidmain(String[]args){Stringfoo=args[1];Stringkiar=args[2];Stringbaz=arg3[3];若用下面方式執(zhí)行該程序,則baz的值為( )。javaTestRedGreenBlue(A)“”(B)null(C)"Red” (D)”BIue” (E)”Green”(F)代碼不能編譯(G)程序拋出異常有下列程序://Fool.javapublicclassFooll{publicstaticvoidmain(Stringargs[]){try{return;}finally{System,out.println(rrFinally!rr);}//endfinally}//endmain()}//endclass該程序的輸出結果為((A)該程序的輸出結果為((A)沒有任何輸出)。(B)輸出“Finally”(C)編譯錯誤 (D)拋出異常6.有下列程序://Foo2.javapuhlicclassFool2{publicstaticvoidmain(String[]args){try{System,exi.t(□);}finally{System.out.println("Finally!");}//endfinally}//endmain()}//endclass該程序的輸出結果為()。(A)沒有任何輸出 (B)輸出“Finally” (C)編譯錯誤 (D)拋出異常修改下列程序的錯誤之處。//|Tes03.javaclassTest03{publicstaticvoidmain(Stringargs[]){try{inta=10;Systein.out.printIn(a/□);}catch(Exceptione){System,out.printIn(,rAnexceptionoccurred.rr);}catch(ArithineticExceptionae){System,out.printlnf"Arithmeticexceptionoccurred.rr)寫出下列程序的運行結果。//Test04.javaclassTest04{publicstaticvoidmain(Stringargs[]){try{;}catch(Exceptione){System.out.print(1m1);System.out.print(1n1);staticvoidrriki_createException(){thrownewArraylndexOutOfBoundsException()staticvoidrriki_itiethod(){try{createExcepti022();System,out.print(FFaFF);}catch(ArithmeticExceptione){

System,out.print(rrtorr);}finally{System,out.print(rrcrr);System,out.print(,rd,r);9.編寫一個程序,要求從鍵盤輸入一個double型的圓的半徑,計算并精出其面積。測試當輸入的數據不是double型數據(如字符串“abc”)會產生什么結果,怎樣處理。10.編寫一個應用程序,在main()方法中使用try塊拋出一個Exception類的對象,為Exception的構造方法提供一個字符串參數,在catch塊內捕獲該異常并打印出字符串參數。添加一個finally塊并打印一條消息。11.創(chuàng)建一個自定義的異常類,該類繼承Exception類,為該類寫一個構造方法,該構造方法帶一個String類型的參數。寫一個方法.令其打印出保存下來的String對泉。再編寫一個類,在main()方法中使用try--catch結構創(chuàng)建一個MyException類的對象并拋出,在catch塊中捕獲該異常井打印出傳遞的String消息。實驗六輸入輸出流一、實驗目的1.掌握Java語言中的輸入輸出流的基本概念。2.掌握Java語言中流的分類3.掌握常用的自截留和字符流類的使用。掌握RandomAccessFile類和File類的使用二、實驗內容1.編寫一個加密程序,對用戶輸入的字符串加密后輸出。加密的方法是將每個字符映射成字母表中的對稱字符。例如a對應z,b對應y,字符串“Java”加密后就成為“Qzfz”2.編寫程序,將一個源文件的內容傳輸到一個目標文件中去。要求:編寫程序時,可以把它分成3個小的模塊:指定要傳送的文件路徑;指定傳送文件的目錄路徑;傳送文件。本程序在運行時看不到運行的結果,若要看運行的結果,得打開資源管理器,打開傳送的文件和被傳送的文件,看這兩個文件是否相同。3.編寫程序,能夠列出指定目錄下的所有文件,包括子目錄下的文件,并使用文件名過濾器來過濾文件。要求:使用File類的list()方法返回該目錄下所有文件的文件名,文件名不包含路徑信息。使用File類的listFiles()方法返回該目錄下的所有文件的File對象。FilenameFilter是文件名過濾器接口類,所有自定義

溫馨提示

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

評論

0/150

提交評論