《面向?qū)ο蟪绦蛟O(shè)計(jì)》實(shí)驗(yàn)指導(dǎo)書_第1頁
《面向?qū)ο蟪绦蛟O(shè)計(jì)》實(shí)驗(yàn)指導(dǎo)書_第2頁
《面向?qū)ο蟪绦蛟O(shè)計(jì)》實(shí)驗(yàn)指導(dǎo)書_第3頁
《面向?qū)ο蟪绦蛟O(shè)計(jì)》實(shí)驗(yàn)指導(dǎo)書_第4頁
《面向?qū)ο蟪绦蛟O(shè)計(jì)》實(shí)驗(yàn)指導(dǎo)書_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

面向?qū)ο蟪绦蛟O(shè)計(jì)》實(shí)驗(yàn)指導(dǎo)書郭玉柱廣東商學(xué)院信息學(xué)院二0一0年十二月目錄實(shí)驗(yàn)一Java基礎(chǔ)實(shí)驗(yàn)實(shí)驗(yàn)二Java面向?qū)ο筇匦栽囼?yàn)--Java中的類、對象和方法實(shí)驗(yàn)三類的繼承、多態(tài)、接口、訪問控制符與修飾符實(shí)驗(yàn)四Java資源及其利用實(shí)驗(yàn)五Java語言的異常處理實(shí)驗(yàn)六輸入輸出流實(shí)驗(yàn)七圖形用戶界面設(shè)計(jì)實(shí)驗(yàn)八JavaApplet及多線程試驗(yàn)附錄1實(shí)驗(yàn)報(bào)告格式實(shí)驗(yàn)一Java基礎(chǔ)實(shí)驗(yàn)、實(shí)驗(yàn)?zāi)康呐c要求學(xué)習(xí)編寫簡單的Java程序。學(xué)習(xí)掌握J(rèn)ava基本數(shù)據(jù)類型及其基本運(yùn)算。學(xué)習(xí)掌握J(rèn)ava的基本流程控制語句。、相關(guān)知識了解JDK的工作環(huán)境,以及如何使用JDK進(jìn)行編程。熟悉集成軟件eclipse3.5及其使用。、實(shí)驗(yàn)內(nèi)容編寫Hello.java程序并運(yùn)行。用Java語言編寫一個(gè)應(yīng)用程序在屏幕上輸出1000之內(nèi)的素?cái)?shù)。一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)”,比如28=1+2+4+7+14編寫一個(gè)應(yīng)用程序在屏幕上輸出1000之內(nèi)的完數(shù)。求滿足1!+2!+3!+???+n!W9999的最大整數(shù)n。一個(gè)三位的整數(shù)如果它的各位數(shù)字的立方之和等于這個(gè)三位數(shù),就稱此數(shù)為水仙花數(shù),比如371=33+73+13,編寫一個(gè)應(yīng)用程序在屏幕上輸出所有水仙花數(shù)。下面程序的輸出結(jié)果是什么?"寫出程序運(yùn)行結(jié)果(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!;實(shí)驗(yàn)二Java面向?qū)ο筇匦栽囼?yàn)-Java中的類、對象和方法一、實(shí)驗(yàn)?zāi)康呐c要求掌握類的定義和使用。掌握對象的聲明、創(chuàng)建和使用。掌握構(gòu)造方法的定義和使用。掌握類方法(靜態(tài)方法)和非類方法(非靜態(tài)方法)的區(qū)別和使用掌握成員變量和局部變量的區(qū)別和使用。二、實(shí)驗(yàn)內(nèi)容1.編寫一個(gè)Java程序,定義一個(gè)表示學(xué)生的類,類名Student,其成員變量有:學(xué)號、班級姓名、性別、年齡;成員方法:(1)獲得班號(2)獲得姓名(3)獲得年齡(4)修改年齡;創(chuàng)建一個(gè)Student的對象,修改該對象的年齡,并輸出該對象的年齡。在Student.Java文件為Student類定義構(gòu)造方法,用于初始化所有成員變量,增加一個(gè)方法toString(),它的返回值是String,其功能是把一個(gè)Student類的對象的成員變量信息組合成一個(gè)字符串并輸出。簡述構(gòu)造函數(shù)的作用和特點(diǎn)。下面是某同學(xué)為Student類編寫的一個(gè)構(gòu)造函數(shù),請指出那些地方有錯(cuò)誤:voidStudent(intsno,Stringsname){studentNo=sno;studentName=sname;returnsno;}4.編寫一個(gè)日期類Date,要求:(1)日期類Date的成員變量有:year,month,day都是int型。2)日期類的方法有:構(gòu)造方法Date(),日期的默認(rèn)值為2008年1月1日;構(gòu)造方法Date(inty,intm,intd),形參y,m,d分別為某個(gè)日期的年月日的初始值;成員方法intgetYfear():獲取日期的年數(shù)作為方法的返回值;成員方法intgetMonth():獲取日期的月份作為方法的返回值;成員方法intgetYfear():獲取日期的日作為方法的返回值;成員方法voidshowDate():已“****年**月**日”的形式顯示一個(gè)日期。5.下面四個(gè)程序分別有什么錯(cuò)誤?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)下列代碼有什么錯(cuò)誤?廢裁Test(JEJjyfefcstaticvoidmain(String[]{□Aa=newAQ;屮a/printf);a加曲{」Strings;4址StWA)”this.s=s;4}4戚驗(yàn)voidprintO”System,outprintlnfs);卩1」下列程序的輸出是什么?戚驗(yàn)由曲伽{屮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關(guān)鍵字。誠J疏classTest?privateintcount;4publi匚?voidmainfStringr1args){」 +Jreturncount;心戚應(yīng)J如:factorial(j^ti){卩intresult=l:afortinti=l;i<=rai++){J■■■■.■■■.■■■.■■■■■■■ ■■■■■■■■■■■■result*^;4}4 “returnresult;屮}J是否能在靜態(tài)方法中調(diào)用成員方法或引用成員變量?是否能在成員方法中調(diào)用靜態(tài)方法或引用靜態(tài)變量?下面代碼的錯(cuò)誤是什么?戚底classJEWfefcstaticvoidmain(Strmg[]趣){umethodi();心publicvoidmethodl(){」method^();4}中publicstaticvoidmethod^(){dSystem.ciutprintln(LLWhat{sradius"+匚.getRadiusO);4}pCirclec^newCircle();+1 描述傳遞基本類型參數(shù)和傳遞引用類型參數(shù)的區(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}屮戚驗(yàn)staticvoid贓(String[]破Circlecirclel=^newCirclefl);屮Circlecircle2=newCirclef^);+■

13.寫出下列四個(gè)程序各自的輸出:戚]粧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口乃{(lán)卩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.描述關(guān)鍵字this的作用,下列代碼有什么錯(cuò)誤?publicclassC{intp;publicvoidsetP(intp){p=p;}}編寫名為Rectangle的類表示矩形,這個(gè)類包括:?一個(gè)double類型的數(shù)據(jù)域width和height表示矩形的寬和高,它們的默認(rèn)值都為1;?String類型的數(shù)據(jù)域color表示矩形的顏色,進(jìn)一步假設(shè)所有矩形的顏色都是相同的,默認(rèn)顏色為白色;?無參構(gòu)造方法創(chuàng)建默認(rèn)矩形;?一個(gè)構(gòu)造方法創(chuàng)建指定width和height的矩形;?所有三個(gè)數(shù)據(jù)域的訪問器方法和修改器方法;getArea()方法返回該矩形的面積;getPerimeter()方法返回它的周長;編寫一個(gè)測試程序,創(chuàng)建兩個(gè)Rectangle對象,設(shè)置第一個(gè)對象的寬為4,高為40,第二個(gè)對象的寬為3.5,高為35.9,所有Rectangle對象的顏色為紅色。顯示兩個(gè)對象的屬性并求它們的面積和周長。設(shè)計(jì)一個(gè)名為Fan的類模擬風(fēng)扇。這個(gè)類包括:?三個(gè)常量SLOW,MEDIUM好FAST,其值分別為1,2,3,表示風(fēng)扇的速度;?int類型的數(shù)據(jù)域speed表示風(fēng)扇的速度(默認(rèn)值為SLOW);boolean型的數(shù)據(jù)域on表示風(fēng)扇是否打開(默認(rèn)值為false);double型的數(shù)據(jù)域radlus表示風(fēng)扇的半徑(默認(rèn)值為5);string型的數(shù)據(jù)域color表示風(fēng)扇的顏色(默認(rèn)值為blue);?無參構(gòu)造方法創(chuàng)建默認(rèn)風(fēng)扇;?全部四個(gè)數(shù)據(jù)域的訪問器和修改器;?toString()方法返回描述風(fēng)扇的字符串。如果風(fēng)扇打開,該方法用一個(gè)組合的字符串返回風(fēng)扇的速度、顏色和半徑;否則,用一個(gè)組合的字符串和“fanisoff”一起返回風(fēng)扇的顏色和半徑。編寫一個(gè)測試程序,創(chuàng)建兩個(gè)Fan對象,將第一個(gè)對象設(shè)置為最大速度,半徑為10,顏色為yellow,打開狀態(tài);第二個(gè)對象為中等速度,半徑為5,顏色為blue,關(guān)閉狀態(tài)。通過調(diào)用toString方法顯示該兩對象。設(shè)計(jì)一個(gè)名為Account的類模擬賬戶,它包括:?int型數(shù)據(jù)域id表示賬號(默認(rèn)值為0);double型數(shù)據(jù)域balance表示賬戶余額(默認(rèn)值為0);double型數(shù)據(jù)域annuallnterestRate存儲當(dāng)前年利率(默認(rèn)值為0);Date型數(shù)據(jù)域dateCreated存儲賬戶開戶的日期;?無參構(gòu)造方法創(chuàng)建一個(gè)默認(rèn)的賬戶;id,balance和annualInterstRate的訪問器和修改器;dateCreated的訪問器;getMonthlylnterestRate()方法返回月利率;withDraw方法從賬戶提取特定數(shù)額的款;deposit方法向賬戶存特定數(shù)額的款;編寫一個(gè)測試程序,創(chuàng)建一個(gè)賬號為1122、余額為20000、年利率為4.5%的Account對象。使用withDraw方法提款2500元,使用deposit方法存款3000元,并打印余額和月利率,以及該賬戶的開戶日期。設(shè)計(jì)名為Stock的類模擬股票,該類包括:string型數(shù)據(jù)域symbol表示股票代號;string型數(shù)據(jù)域name表示股票的名稱;double型數(shù)據(jù)域preViousclosingPrice存儲前一天的股票價(jià)格;double型數(shù)據(jù)域currentPrice存儲當(dāng)前時(shí)間的股票價(jià)格;?一個(gè)構(gòu)造方法根據(jù)指定的股票代號和名稱創(chuàng)建股票;?所有數(shù)據(jù)域的訪問器方法;previousClosingPrice和currentPrice的修改器方法;changePercent()方法返回從previousClosingPrice變?yōu)閏urrentPrice的百分比;編寫測試程序創(chuàng)建Stock對象,其股票代號為SUNW、名稱為SunMicrosystemInc.、上期收盤價(jià)為100。設(shè)置新的當(dāng)前價(jià)為90,顯示價(jià)格變化百分比。編寫程序,輸入年份,打印出該年的年歷(12個(gè)月的),如下圖所示。提示:使用Calendar類得到一個(gè)Calendar類對象,先求出輸入年份的1月1日是星期幾,然后通過循環(huán)打印出每個(gè)月的日歷,注意大小月和閏月問題。Pleaseinputeui's:2009Month*snajTL?isJanuraySunMonThuWed TheFriSat123456789101112131415lb1713192021222324252628293031MontliLsnorneisFebuarySunMonThuWedTheFriSat12345689w11121314151617181920212223242526272S設(shè)計(jì)名為Time的類。該類包含:?數(shù)據(jù)域hour、minute和second表示時(shí)間;?無參構(gòu)造方法為當(dāng)前時(shí)間創(chuàng)建Time對象;(數(shù)據(jù)域的值表示當(dāng)前的時(shí)間)?一個(gè)構(gòu)造方法在指定以毫秒表示的、從1970年1月1日午夜開始已逝去的時(shí)間時(shí),創(chuàng)建一個(gè)Time對象;(數(shù)據(jù)域的值表示該時(shí)間)?三個(gè)get方法分別獲得數(shù)據(jù)域hour,minute和second;編寫測試程序創(chuàng)建兩個(gè)Time對象(使用newTime()和newTime(555550000)),并顯示它們的小時(shí)、分鐘和秒。提示:無參構(gòu)造方法可以使用當(dāng)前時(shí)間,當(dāng)前時(shí)間可以通過System.currentTimeMillis()獲得。另外一個(gè)構(gòu)造方法為指定逝去的時(shí)間設(shè)置小時(shí)、分鐘和秒的值。例如,如果逝去的時(shí)間555550000毫秒,那么小時(shí)為10,分鐘為19,秒為10。設(shè)計(jì)名為MyInteger的類,它包括:int型數(shù)據(jù)域value存儲該對象表示的int值;?一個(gè)構(gòu)造方法,當(dāng)指定int值時(shí),創(chuàng)建MyInteger對象;?一個(gè)get方法返回int的值;isEven(),isOdd()和isPrime()方法,如果這個(gè)值分別為偶、奇或素?cái)?shù),返回true;?靜態(tài)方法isEven(int),isOdd(int)和isPrime(int),如果指定的值分別為偶、奇或素?cái)?shù),返回true;?靜態(tài)方法isEven(MyInteger),isOdd(MyInteger)和isPrime(MyInteger),如果指定的值分別為偶、奇或素?cái)?shù),返回true。equals(int)和equals(MyInteger)方法,如果該對象的值與指定的值相等,返回true;?靜態(tài)方法parseInt(int)將字符串轉(zhuǎn)變成int值。編寫用戶程序測試該類中的所有方法。設(shè)計(jì)名為MyPoint的類表示一個(gè)具有x坐標(biāo)和y坐標(biāo)的點(diǎn),該類包括:?兩個(gè)數(shù)據(jù)域x和y表示坐標(biāo);?無參構(gòu)造方法創(chuàng)建點(diǎn)(0,0);

?一個(gè)構(gòu)造方法根據(jù)指定坐標(biāo)創(chuàng)建一個(gè)點(diǎn);?兩個(gè)get方法分別得到數(shù)據(jù)域x和y;distance方法返回MyPoint類型的兩個(gè)點(diǎn)之間的距離;distance方法返回從這一點(diǎn)到另一個(gè)指定x和y坐標(biāo)的點(diǎn)之間的距離;編寫測試程序創(chuàng)建兩個(gè)點(diǎn)(0,0)和(10,30.5),并顯示它們之間的距離。24.請寫出下列程序的輸出結(jié)果//程序名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.請寫出下列程序的輸出結(jié)果///程序名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.設(shè)計(jì)名為Course的類,它包括:3個(gè)成員變量:課程編號(cNnumber)、課程名(Cname)、學(xué)分?jǐn)?shù)(Cuit)?1個(gè)構(gòu)造方法,用于初始化課程編號、課程名和學(xué)分1個(gè)方法:printCourseInfo(),用于輸出課程相關(guān)的信息編寫課程類的測試程序27.下面程序定義了一個(gè)Student類及其測試程序,請給出程序運(yùn)行的結(jié)果//TestStudent.javaclassStudent{PStringname;|chargender;intage;PString[]courseNames;double[]courseScores;^-1publicStudent(){/V構(gòu)造方法dname="unknownname!";4gender=1M1;+Jage=0;J■...-...■.Tl..-...-...-...-...courseNames=newString[31;courseScores=newdouble[3];+JcourseNames[□]="計(jì)算機(jī)n;4courseriames[11="數(shù)學(xué)rr;4courseNames[2]="英語";4courseScores[□]=courseScores[1]=courseScores[2]=□;}JPublicStudent(Stringn^chars^inta){//帶參數(shù)的構(gòu)造方法屮name=n;」gender=s;dage=a;courseNames=newString[3];i-1=new詩匸£ing(”計(jì)算機(jī)=new詩匸£ing(”計(jì)算機(jī)”);」=new ■匸ing(”數(shù)學(xué)”)汀=newString(rr^i^r,);h1courseriames[□]courseNames[11courseNames[21courseScores[0]=□;courseScores[1]=0;^courseScores[2]=□;

publicvoidintroduceMe(){publicvoidintroduceMe(){/V成員方法+J詰里擊圖標(biāo)有建來顯示拼寫建的名字是:”+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()實(shí)驗(yàn)三類的繼承、多態(tài)、接口、訪問控制符與修飾符一、實(shí)驗(yàn)?zāi)康呐c要求掌握繼承和多態(tài)這兩個(gè)面向?qū)ο蟪绦虻幕驹瓌t。2.理解interface關(guān)鍵字和接口的基本概念。3.理解abstract關(guān)鍵字,掌握抽象類和程序方法的設(shè)計(jì)技巧。理解final關(guān)鍵字,掌握最終類和抽象類的區(qū)別和使用。理解static關(guān)鍵字,理解類的層次和對象層次的區(qū)別,掌握類變量和類方法的使用。理解包的概念和使用。創(chuàng)建一個(gè)名為charpter3_2的包,將本實(shí)驗(yàn)的程序放入該包中二、實(shí)驗(yàn)內(nèi)容設(shè)計(jì)一個(gè)Person類,其成員變量有:姓名(name)、性別(gender)、年齡(age);再設(shè)計(jì)一個(gè)Student類,它是類Person的子類,其成員變量有:學(xué)號(id)、班名(cname)、成績(score),類Student中要有一個(gè)方法display。,用來顯示一個(gè)學(xué)生的信息。編寫一個(gè)測試程序,創(chuàng)建一個(gè)Student類的對象,要求name和id是自己的姓名和學(xué)號,輸出學(xué)生的各種信息,學(xué)生的基本信息在類Student的帶參數(shù)的構(gòu)造方法中設(shè)定。寫出下列程序運(yùn)行結(jié)果classA{publicA(){Jf?■沁mm" ''Systein.out.println[FFA'sno-argconstructorisinvoked!,r)classBextendsA{}屮piiblicclassC{publicstaticvoidinain(Stringarg[l){Bb=new_Bj^);」下列程序在編譯時(shí)會出現(xiàn)什么問題?classA{」publicA(intx){}」classBextendsA{+JpublicB(){|}」nuhlicclassCTest{nuljlicstaticvoidmain(Stringarg[l){4.下列說法對還是錯(cuò)?(1)4.下列說法對還是錯(cuò)?(1)(2)(3)(4)子類是父類的一個(gè)子集。當(dāng)從子類調(diào)用構(gòu)造方法時(shí),它的父類的無參數(shù)構(gòu)造方法也常常被調(diào)用可以在子類覆蓋定義在父類中額私有方法??梢栽谧宇惛采w定義在父類中的靜態(tài)方法。5.指出下列類中的問題。(提示,至少有兩個(gè)問題)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.寫出下列程序運(yùn)行的結(jié)果: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調(diào)用newA(3)時(shí),會調(diào)用Object的構(gòu)造方法嗎?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結(jié)果。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結(jié)果。classA{inti=l;i-1staticinti=2;{System,out.print.In(rri=rr+i);}f1static{Svstern.out.println(Frj=,,=j);}

(2)10.寫出程序HidingDemo.java運(yùn)行結(jié)果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實(shí)例方法m2rr;」pulilicStringreturnrrA'm3()<Js實(shí)例方法m3rr;」classBextendsA{+Jpublicpublicnuljlicinti=2;+Jintj=12;i-1Stringml(){+J

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

//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該程序的輸出結(jié)果為((A)該程序的輸出結(jié)果為((A)沒有任何輸出)。(B)輸出“Finally”(C)編譯錯(cuò)誤 (D)拋出異常6.有下列程序://Foo2.javapuhlicclassFool2{publicstaticvoidmain(String[]args){try{System,exi.t(□);}finally{System.out.println("Finally!");}//endfinally}//endmain()}//endclass該程序的輸出結(jié)果為()。(A)沒有任何輸出 (B)輸出“Finally” (C)編譯錯(cuò)誤 (D)拋出異常修改下列程序的錯(cuò)誤之處。//|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)寫出下列程序的運(yùn)行結(jié)果。//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.編寫一個(gè)程序,要求從鍵盤輸入一個(gè)double型的圓的半徑,計(jì)算并精出其面積。測試當(dāng)輸入的數(shù)據(jù)不是double型數(shù)據(jù)(如字符串“abc”)會產(chǎn)生什么結(jié)果,怎樣處理。10.編寫一個(gè)應(yīng)用程序,在main()方法中使用try塊拋出一個(gè)Exception類的對象,為Exception的構(gòu)造方法提供一個(gè)字符串參數(shù),在catch塊內(nèi)捕獲該異常并打印出字符串參數(shù)。添加一個(gè)finally塊并打印一條消息。11.創(chuàng)建一個(gè)自定義的異常類,該類繼承Exception類,為該類寫一個(gè)構(gòu)造方法,該構(gòu)造方法帶一個(gè)String類型的參數(shù)。寫一個(gè)方法.令其打印出保存下來的String對泉。再編寫一個(gè)類,在main()方法中使用try--catch結(jié)構(gòu)創(chuàng)建一個(gè)MyException類的對象并拋出,在catch塊中捕獲該異常井打印出傳遞的String消息。實(shí)驗(yàn)六輸入輸出流一、實(shí)驗(yàn)?zāi)康?.掌握J(rèn)ava語言中的輸入輸出流的基本概念。2.掌握J(rèn)ava語言中流的分類3.掌握常用的自截留和字符流類的使用。掌握RandomAccessFile類和File類的使用二、實(shí)驗(yàn)內(nèi)容1.編寫一個(gè)加密程序,對用戶輸入的字符串加密后輸出。加密的方法是將每個(gè)字符映射成字母表中的對稱字符。例如a對應(yīng)z,b對應(yīng)y,字符串“Java”加密后就成為“Qzfz”2.編寫程序,將一個(gè)源文件的內(nèi)容傳輸?shù)揭粋€(gè)目標(biāo)文件中去。要求:編寫程序時(shí),可以把它分成3個(gè)小的模塊:指定要傳送的文件路徑;指定傳送文件的目錄路徑;傳送文件。本程序在運(yùn)行時(shí)看不到運(yùn)行的結(jié)果,若要看運(yùn)行的結(jié)果,得打開資源管理器,打開傳送的文件和被傳送的文件,看這兩個(gè)文件是否相同。3.編寫程序,能夠列出指定目錄下的所有文件,包括子目錄下的文件,并使用文件名過濾器來過濾文件。要求:使用File類的list()方法返回該目錄下所有文件的文件名,文件名不包含路徑信息。使用File類的listFiles()方法返回該目錄下的所有文件的File對象。FilenameFilter是文件名過濾器接口類,所有自定義

溫馨提示

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

最新文檔

評論

0/150

提交評論