JAVA習(xí)題4參考答案_第1頁
JAVA習(xí)題4參考答案_第2頁
JAVA習(xí)題4參考答案_第3頁
JAVA習(xí)題4參考答案_第4頁
JAVA習(xí)題4參考答案_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

習(xí)題四參照答案一、判斷題1.對2.對3.錯4.錯5.對6.錯8.錯9.對10.對11.錯12.對13.錯14.對15.對16.錯17.對18.對19.錯20.錯【解釋】第3題:本題考察抽象類的特性。抽象類中可包括構(gòu)造措施、抽象措施和詳細(xì)實現(xiàn)的措施以及常量和變量,但不能直接實例化,一般可對抽象類的子類實例化,實例化對象引用可以是抽象類類型。第11題:本題考察子類中可以寫的措施。子類可以繼承父類的措施,也可以覆蓋父類的措施,也可以新增長措施,新增長的措施與從父類繼承的措施可構(gòu)成重載。第13題:本題考察abstract的使用方法。abstract可修飾類和措施,但不能修飾屬性,即不能修飾類的組員變量。第16題:本題考察final修飾的措施的特性。final修飾的措施不能被覆蓋,但可以有重載的措施。二、選擇題1.B2.B3、A4.B5.A6.C7.B8.D9.B10.B11.A12.D13、D14.A15.D16.D17、C18.D19、AD20、CD21、C22、C23、C24、B25.B26.D28.A【解釋】第7題:本題考察對繼承、覆蓋和重載的理解,屬于難點(diǎn)。本題4個選項中的措施名與父類定義的措施名都相似。選項A的措施有3個參數(shù),選項C的措施有1個參數(shù),都能與從父類繼承的措施構(gòu)成重載,可以加入子類Child中;選項B和選項D措施中的參數(shù)類型和個數(shù)都與父類定義的措施相似,由于父類定義的措施用public修飾,要想覆蓋父類定義的措施,子類的措施也必須用public修飾,因此,選項D可以加入子類Child中,但選項B不行。第8、10、13和14題:這幾題重要考察子類中具有覆蓋措施的調(diào)用狀況。子類對象調(diào)用措施時,首先調(diào)用子類中同名和參數(shù)形式(參數(shù)個數(shù)、類型和次序)一致的措施,否則就調(diào)用父類中定義的匹配的措施。第9題:本題考察對類實現(xiàn)接口的理解。在Java的接口中包括抽象措施和常量。類實現(xiàn)接口時,需實現(xiàn)接口中的所有措施,并可直接使用接口中定義的常量(等同于從接口中繼承了這些常量)。本題中的接口B定義了"intk=10;”編譯時會自動加上final,表達(dá)k為常量。因此,本題選B。第11題:本題考察父類中有static修飾和沒有static修飾的措施被子類覆蓋的情形。當(dāng)父類的措施被static修飾時,子類中覆蓋的措施也必須用static修飾。反之,父類的措施沒有static修飾,子類中覆蓋的措施也不用static修飾。因此,本題選A。第12和16題:這2題考察子類繼承父類時構(gòu)造措施的定義。子類繼承父類時,若父類定義了有參數(shù)的構(gòu)造措施,而沒有定義無參數(shù)的構(gòu)造措施,那么在子類中的構(gòu)造措施必須用super語句去調(diào)用父類定義的有參數(shù)的構(gòu)造措施,否則無法通過編譯。因此,提議在定義父類時,如寫了構(gòu)造措施,最佳寫上一種無參數(shù)的構(gòu)造措施。第18題:本題考察類的繼承。選項A中的m僅在父類的措施參數(shù)中定義,無法給變量i賦值;選項B中的b是非靜態(tài)組員變量,在靜態(tài)的main措施中無法直接給i賦值;父類定義的a是私有的,無法被子類繼承,因此選項C也不對。選項D中的措施change是父類定義的公共措施,可以被子類繼承和調(diào)用。因此,本題選D。第23題:本題考察類的構(gòu)造措施。程序中第2行為構(gòu)造措施,第5行為措施名,Test有void修飾,它不是構(gòu)造措施,可作為實例措施。程序編譯能通過。運(yùn)行時,第9行實例化Test對象,調(diào)用第2行的構(gòu)造措施,輸出3;然后執(zhí)行第9行調(diào)用第5行的措施,輸出2;最終執(zhí)行11行,輸出1。因此,本題選C。第24題:本題考察子類實例化時的過程三、程序閱讀題1.int2.(1)abstract(2)getName(3)extends(4)Stringmajor(5)getMajor3.324.resultOne=0resultTwo=48resultThree=205.PineTreeOops6.MyFunc7.輸出成果為:28.hi!IamTomHowdoyoudo?9.第2行改為finaldoublePI=3.14;第5行的extends改為implements第10行的措施申明增長一種public,改為publicdoublearea()10.15111011.221四、編程題1.參照代碼如下:publicclassCircle{doubleradius;publicCircle(){radius=0;}publicCircle(doubler){radius=r;}publicdoublegetRadius(){returnradius;}publicdoublegetPerimeter()(return2*Math.PI*radius;}publicdoublegetArea(){returnMath.PI*radius*radius;}publicvoiddisp(){System.out.println("圓的半徑為"+getRadius()+"周長為"+getPerimeter()+"面積為"+getArea());}}publicclassCylinderextendsCircle{doubleheight;publicCylinder(doubler,doubleh){radius=r;height=h;}publicdoublegetHeight(){returnheight;}publicdoublegetCylinderArea(){return2*Math.PI*radius*(radius+height);}publicdoublegetVol(){returnMath.PI*radius*radius*height;}publicvoiddisVol(){System.out.println("圓柱體的體積為"+getVol());}}2.參照代碼如下:interfaceShape{publicabstractdoublegetArea();}classCircleimplementsShape{privateintr;Circle(intr){this.r=r;}publicdoublegetArea(){return3.14*r*r;}}classTestCircle{publicstaticvoidmain(Stringargs[]){Circlec=newCircle(5);System.out.println("園的面積為:"+c.getArea());}}3.參照代碼如下:interfaceshape{doublearea();)classTriangleimplementsshape{privatedoublea,b,c;publicTriangle(doublea,doubleb,doublec){this.a=a;this.b=b;this.c=c;}publicdoublearea(){doublep=(a+b+c)/2;returnMath.sqrt(p*(p-a)*(p-b)*(p-c));}}classCircleimplementsshape{privatedoubler;publicCircle(doubler)(this.r=r;}publicdoublearea(){returnMath.PI*r*r;}}classRectangleimplementsshape{privatedoublewidth,height;publicRectangle(doublej,doublek){width=j;height=k;}publicdoublearea(){returnwidth*height;}}publicclassTestShape{publicstaticvoidmain(Stringargs[]){shapes[]=newshape[3];s[0]=newTriangle(3,4,5);s[1]=newCircle(3.5);s[2]=newRectangle(3.5,4.0);for(inti=0;i<s.length;i++)System.out.println(s[i].area());}}4.不需要做5.(1)參照代碼如下:abstractpublicclassAnimal{publicStringname;publicintage;publicdoubleweight;publicvoidshowInfo(){System.out.println("動物名為"+name+"年齡為"+age+"歲,重量為"+weight);}abstractpublicvoidmove();abstractpublicvoideat();}(2)參照代碼如下:publicclassBirdextendsAnimal{publicBird(Stringname,intage,doubleweight){=name;this.age=age;this.weight=weight;}publicvoidshowInfo(){System.out.println("鳥名為"+name+"年齡為"+age+"重量為"+weight);}publicvoidmove(){System.out.println(name+"用翅膀在天空上!");}publicvoideat(){System.out.println(name+"喜歡吃蟲子!");}}(3)參照代碼如下:publicclassTestAnimal{publicstaticvoidmain(Stringargs[]){Animalbird=newBird("麻雀",1,0.3);bird.showInfo();bird.move();bird.eat();}6.參照代碼如下:publicclassPeople{publicStringname;publicStringsex;publicStringbothnum;publicPeople(){};publicStringprintInfo(){return"姓名:"+name+'\n'+"性別:"+sex+'\n'+"出生年月:"+bothnum;}}classTeacherextendsPeople{publicStringschool;publicintworkID;publicStringprintInfo(){returnsuper.printInfo()+'\n'+"學(xué)校:"+school+'\n'+"工號:"+workID;}}classStudentextendsPeople{publicStringschool;publicintId;publicStringdiscipline;publicStringgrade;publicStringclasses;publicStringprintInfo(){returnsuper.printInfo()+'\n'+"學(xué)校:"+school+'\n'+"學(xué)號:"+Id+'\n'+"專業(yè):"+discipline+'\n'+"年齡:"+grade+'\n'+"班級:"+classes;}}classTestPerson{publicstaticvoidmain(Stringargs[]){Teachert=newTeacher();="Tom";t.sex="男";t.bothnum="19820808";t.school="浙江工業(yè)大學(xué)";t.workID=010408;System.out.println(t.printInfo());Students=newStudent();="Jack";s.sex="男";s.bothnum="19920305";s.Id=266302;s.school="浙江工業(yè)大學(xué)";s.discipline="軟件工程";s.grade="大一";s.classes="2班";System.out.println(s.printInfo());}}7.參照代碼如下:publicclass證件{ String編號;String姓名;String出生年月;//格式mm/dd/yyString部門; public證件(){}public證件(Stringid,Stringname,Stringdate,Stringdept) {編號=id;姓名=name;出生年月=date;//格式mm/dd/yy}publicvoidsetID(Stringid){編號=id;}publicvoidsetName(Stringname){姓名=name;}publicvoidsetDate(Stringdd){出生年月=dd;}publicvoidsetDept(Stringdd){部門=dd;} publicvoiddisp(){System.out.println("姓名:"+姓名+"證件號:"+編號+"出生日期"+出生年月+"所屬部門"+部門); }}class工作證extends證件{String職務(wù);String發(fā)證日期;//格式mm/dd/yypublic工作證(){}public工作證(Stringid,Stringname,Stringdate,Stringdept,Stringtitle,Stringdd){ super(id,name,date,dept);職務(wù)=title;發(fā)證日期=dd; }publicvoidsetTitile(Stringdd){職務(wù)=dd;}publicvoidset發(fā)證日期(Stringdd){發(fā)證日期=dd;}publicvoiddisp(){super.disp();System.out.println("職務(wù):"+職務(wù)+"發(fā)證日期:"+發(fā)證日期); }}class學(xué)生證extends證件{String專業(yè);String入校時間;//格式mm/dd/yyString注冊信息;public學(xué)生證(){}public學(xué)生證(Stringid,Stringname,Stringdate,Stringdept,Stringmajor,Stringdd,Stringmsg){ super(id,name,date,dept);專業(yè)=major;入校時間=dd;注冊信息=msg;}publicvoiddisp(){super.disp();System.out.println("專業(yè):"+專業(yè)+"入校時間:"+入校時間+"注冊信息"+注冊信息); }}8.(1)參照代碼如下:interfaceAreaInterface(publicstaticfinaldoublepai=Math.PI;publicabstractdoublearea();}(2)參照代碼如下:publicclassRectangleimplementsAreaInterface{privatedoublex;privatedoubley;publicRectangle(doublex,doubley){this.x=x;this.y=y;System.out.println("長方形的長:"+x+"寬為:"+y);}publicdoublearea(){returnx*y;}publicStringtoString(){return("長方形的面積:"+this.area());}}(3)參照代碼如

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論