![面向?qū)ο蟮母呒?jí)特性-參考答案_第1頁](http://file4.renrendoc.com/view3/M03/21/03/wKhkFmYUlMqAPQggAAI29W6JGl0914.jpg)
![面向?qū)ο蟮母呒?jí)特性-參考答案_第2頁](http://file4.renrendoc.com/view3/M03/21/03/wKhkFmYUlMqAPQggAAI29W6JGl09142.jpg)
![面向?qū)ο蟮母呒?jí)特性-參考答案_第3頁](http://file4.renrendoc.com/view3/M03/21/03/wKhkFmYUlMqAPQggAAI29W6JGl09143.jpg)
![面向?qū)ο蟮母呒?jí)特性-參考答案_第4頁](http://file4.renrendoc.com/view3/M03/21/03/wKhkFmYUlMqAPQggAAI29W6JGl09144.jpg)
![面向?qū)ο蟮母呒?jí)特性-參考答案_第5頁](http://file4.renrendoc.com/view3/M03/21/03/wKhkFmYUlMqAPQggAAI29W6JGl09145.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面對(duì)對(duì)象的高級(jí)特性_參考答案Ⅰ.選擇題1、給定下列代碼:
B當(dāng)在第6行加入什么方法時(shí)會(huì)引起編譯錯(cuò)誤?2、給定以下代碼:
B執(zhí)行后的結(jié)果是?A.打印字符串TestedB.編譯失敗C.代碼運(yùn)行勝利但無輸出D.運(yùn)行時(shí)拋出異樣3、MAX_LENGTH是int型public成員變量,變量值保持為常量100,用簡(jiǎn)短語句定義這個(gè)變量?(CD)A.publicintMAX_LENGTH=100;B.finalintMAX_LENGTH=100;C.finalpublicintMAX_LENGTH=100;D.publicfinalintMAX_LENGTH=100.4、給出以下代碼,請(qǐng)問該程序的運(yùn)行結(jié)果是什么?(B)1.classA{staticvoidfoo(inti){};}2.classBextendsA{voidfoo(inti){};}A第1行編譯錯(cuò)誤。
B第2行編譯錯(cuò)誤。
C代碼編譯勝利。
//靜態(tài)方法不能被重寫4、有關(guān)類的說法正確的是(B)A.類具有封裝性,所以類的數(shù)據(jù)是不能被訪問的B.類具有封裝性,但可以通過類的公共接口訪問類中的數(shù)據(jù)C.聲明一個(gè)類時(shí),必需運(yùn)用public修飾符D.每個(gè)類中必需有main方法,否則程序無法運(yùn)行5、將類的訪問權(quán)限設(shè)置為默認(rèn)的,則該成員能被(A)A.同一包中的類訪問B.其他包中的類訪問C.全部的類訪問D.全部的類的子類訪問6、假設(shè)下面的程序代碼都放在MyClass.java文件中,(D)程序代碼能夠編譯通過。
A.importjava.awt.*;packagemypackage;calssMyClass{}B.packagemypackage;importjava.awt.*;publicclassmyClass{}C.intm;packagemypackage;importjava.awt.*;classMyClass{}D./*Thisisacomment*/packagemypackage;importjava.awt.*;publicclassMyClass{}7、假設(shè)在java源程序文件MyClass.java中只含有一個(gè)類,而且這個(gè)類必需能夠被位于一個(gè)浩大的軟件系統(tǒng)中的全部java類訪問到,那么下面(C)聲明有可能是符合要求的類聲明。
A.privateclassMyClassextendsObjectB.publicclassmyclassextendsObjectC.publicclassMyClassD.classMyClassextendsObjectⅡ.程序分析題1、分析并完善如下程序,并寫出最終執(zhí)行結(jié)果:
classPerson{Stringname=zhangsan;intage=18;doubleheight=1.75;publicPerson(){System.out.println(Person());}publicPerson(Stringn){System.out.println(Person(Stringn));name=n;}publicPerson(Stringn,inta,doubleh){System.out.println(Person(Stringn,inta,doubleh));name=n;age=a;height=h;}publicvoidsayHello(){System.out.println(Hello!);}}classStudent4extendsPerson{doublescore=0;publicStudent4(){__this__(aa,10);System.out.println(Student());}publicStudent4(Stringn,doubles){__super__(n);score=s;System.out.println(Student(Stringn,doubles));}publicStudent4(Stringn,inta,doubleh,doubles){__this__(n,s);age=a;height=h;score=s;System.out.println(Student(Stringn,inta,doubleh,doubles));}publicvoidstudy(){score++;}publicvoidsayHello(){__this/super__.sayHello();System.out.println(Hello,teacher!);inti=this.age;intj=super.age;}publicstaticvoidmain(Stringargs[]){Student4s4=newStudent4();__s4__.sayHello();}}2、找出程序中的錯(cuò)誤,并說明緣由:
publicclassFinalVar{finalinty=100;finalintx1;publicFinalVar(){x1=1;}publicstaticvoidmain(String[]args){finalintz=0;}publicvoidaa(){FinalVar.add(1);}publicstaticvoidadd(finalintx2){x2++;//錯(cuò)了final不許修改}}3、找出程序中的錯(cuò)誤,并說明緣由:
(finalclassFinalClass{publicvoidadd(intx){x++;}}publicclassSubFinalDemoextendsFinalClass{//不能被繼承publicvoidadd(intx){x+=2;}}4、找出程序中的錯(cuò)誤,并說明緣由:
classFinalClass{publicfinalvoidadd(intx){x++;}}publicclassSubFinalDemoextendsFinalClass{publicvoidadd(intx){//不能在子類中被覆蓋,即不能修改。
x+=2;}}Ⅲ.編程題1、如下兩個(gè)類之間存在肯定的聯(lián)系,請(qǐng)用面對(duì)對(duì)象的特性實(shí)現(xiàn)類及其關(guān)系:
publicclassPerson{Stringname;intage;doubleheight;Person(){}publicvoidsayHello(){}}publicclassStudentextendsPerson{doublescore;publicvoidstudy(){}}2、(1)定義一個(gè)汽車類Vehicle,要求如下:
(a)屬性包括:
汽車品牌brand(String類型)、顏色color(String類型)和速度speed(double類型)。
(b)至少供應(yīng)一個(gè)有參的構(gòu)造方法(要求品牌和顏色可以初始化為隨意值,但速度的初始值必需為0)。
(c)為屬性供應(yīng)訪問器方法。
留意:
汽車品牌一旦初始化之后不能修改。
(d)定義一個(gè)一般方法run(),用打印語句描述汽車奔跑的功能定義測(cè)試類VehicleTest,在其main方法中創(chuàng)建一個(gè)品牌為benz、顏色為black的汽車。
publicclassVehicle{privateStringbrand;privateStringcolor;privatedoublespeed;Vehicle(){}Vehicle(Stringbrand,Stringcolor){this.brand=brand;this.color=color;speed=0;}publicStringgetColor(){returncolor;}publicvoidsetColor(Stringcolor){this.color=color;}publicdoublegetSpeed(){returnspeed;}publicvoidsetSpeed(doublespeed){this.speed=speed;}publicvoidrun(){System.out.println(getColor()+的+getBrand()+的速度是+getSpeed());}publicStringgetBrand(){returnbrand;}}(2)定義一個(gè)Vehicle類的子類轎車類Car,要求如下:
(a)轎車有自己的屬性載人數(shù)loader(int類型)。
(b)供應(yīng)該類初始化屬性的構(gòu)造方法。
(c)重新定義run(),用打印語句描述轎車奔跑的功能。
(d)定義測(cè)試類Test,在其main方法中創(chuàng)建一個(gè)品牌為Honda、顏色為red,載人數(shù)為2人的轎車。
publicclassCarextendsVehicle{intloader;Car(){}Car(Stringbrand,Stringcolor,intloader){super(brand,color);this.loader=loader;}publicvoidrun(){System.out.println(getColor()+的載人數(shù)+loader+getBrand()+的速度是+getSpeed());}}publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubCarcar=newCar(Honda,red,2);car.run();}3、設(shè)計(jì)四個(gè)類,分別是:
(1)Shape表示圖形類,有面積屬性area、周長(zhǎng)屬性per,顏色屬性color,有兩個(gè)構(gòu)造方法(一個(gè)是默認(rèn)的、一個(gè)是為顏色賦值的),還有3個(gè)抽象方法,分別是:
getArea計(jì)算面積、getPer計(jì)算周長(zhǎng)、showAll輸出全部信息,還有一個(gè)求顏色的方法getColor。
publicabstractclassShape{doublearea;doubleper;charcolor;Shape(){}Shape(charcolor){this.color=color;}publicabstractdoublegetArea();publicabstractdoublegetPer();publicabstractvoidshowAll();publicchargetColor(){returncolor;}}(2)2個(gè)子類:
1)Rectangle表示矩形類,增加兩個(gè)屬性,Width表示長(zhǎng)度、height表示寬度,重寫getPer、getArea和showAll三個(gè)方法,另外又增加一個(gè)構(gòu)造方法(一個(gè)是默認(rèn)的、一個(gè)是為高度、寬度、顏色賦值的)。
publicclassRectangleextendsShape{doublewidth;doubleheight;Rectangle(){}Rectangle(doublewidth,doubleheight,charcolor){super(color);this.width=width;this.height=height;}@OverridepublicdoublegetArea(){area=width*height;returnarea;}@OverridepublicdoublegetPer(){per=2*(width+height);returnper;}@OverridepublicvoidshowAll(){System.out.println(長(zhǎng):
+width);System.out.println(寬:
+height);System.out.println(面積:+getArea());System.out.println(周長(zhǎng):+getPer());System.out.println(顏色:+getColor());}}2)Circle表示圓類,增加1個(gè)屬性,radius表示半徑,重寫getPer、getArea和showAll三個(gè)方法,另外又增加兩個(gè)構(gòu)造方法(為半徑、顏色賦值的)。
publicclassCircleextendsShape{finaldoublepi=3.14;doubleradius;Circle(){}Circle(doubleradius,charcolor){super(color);this.radius=radius;}@OverridepublicdoublegetArea(){area=pi*radius*radius;returnarea;}@OverridepublicdoublegetPer(){per=2*pi*radius;returnper;}@OverridepublicvoidshowAll(){System.out.println(半徑:
+radius);System.out.println(面積:+getArea());System.out.println(周長(zhǎng):+getPer());System.out.println(顏色:+getColor());}}(3)一個(gè)測(cè)試類PolyDemo,在main方法中,聲明創(chuàng)建每個(gè)子類的對(duì)象,并調(diào)用2個(gè)子類的showAll方法。
publicclassPolyDemo{publicstaticvoidmain(String[]args){Rectangler=newRectangle(1,2,‘藍(lán)’);Circlec=newCircle(1.2,‘紅’);r.showAll();System.out.println(-----------------);c.showAll();System.out.println(-----------------);}}4、Cola公司的雇員分為以下若干類:
(1)ColaEmployee:
這是全部員工總的父類,屬性:
員工的姓名,員工的生日月份。
方法:
getSalary(intmonth)依據(jù)參數(shù)月份來確定工資,假如該月員工過生日,則公司會(huì)額外嘉獎(jiǎng)100元。
(2)SalariedEmployee:
ColaEmployee的子類,拿固定工資的員工。
屬性:
月薪(3)HourlyEmployee:
ColaEmployee的子類,按小時(shí)拿工資的員工,每月工作超出160小時(shí)的部分依據(jù)1.5倍工資發(fā)放。
屬性:
每小時(shí)的工資、每月工作的小時(shí)數(shù)(4)SalesEmployee:
ColaEmployee的子類,銷售人員,工資由月銷售額和提成率確定。
屬性:
月銷售額、提成率(5)定義一個(gè)類Company,在該類中寫一個(gè)方法,調(diào)用該方法可以打印出某月某個(gè)員工的工資數(shù)額,寫一個(gè)測(cè)試類TestCompany,在main方法,把若干各種類型的員工放在一個(gè)ColaEmployee數(shù)組里,并單元出數(shù)組中每個(gè)員工當(dāng)月的工資。
publicabstractclassColaEmployee{Stringname;intyear;intmonth;intday;ColaEmployee(){}ColaEmployee(Stringname,intyear,intmonth,intday){this.name=name;this.day=day;this.month=month;this.year=year;}abstractdoublegetSalary(intmonth);}publicclassSalariedEmployeeextendsColaEmployee{doublesalary;SalariedEmployee(){}SalariedEmployee(Stringname,intyear,intmonth,intday,doublesalary){super(name,year,month,day);this.salary=salary;}@OverridedoublegetSalary(intmonth){if(month==this.month){salary+=100;}returnsalary;}}publicclassSalesEmployeeextendsColaEmployee{doublemonthSalary;doublerate;SalesEmployee(){}publicclassHourlyEmployeeextendsColaEmployee{doublehourSalary;inthour;HourlyEmployee(){}HourlyEmployee(Stringname,intyear,intmonth,intday,doublehourSalary,inthour){super(name,year,month,day);this.hourSalary=hourSalary;this.hour=hour;}@OverridedoublegetSalary(intmonth){doublesalary=0;if(hour=160){salary=hour*hourSalary;}else{salary=160*hourSalary+(hour-160)*hourSalary*1.5;}if(month==this.month){salary+=100;}returnsalary;}}SalesEmployee(Stringname,intyear,intmonth,intday,doublemonthSalary,doublerate){super(name,year,month,day);this.monthSalary=monthSalary;this.rate=rate;}@OverridedoublegetSalary(intmonth){doublesalary=monthSalary*rate;if(month==this.month){salary+=100;}returnsalary;}}publicclassCompany{staticvoidgetSalary(intmonth,ColaEmployeec){System.out.println(month+月+c.name+的工資:+c.getSalary(month));}}publicclassTestCompany{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubColaEmployee[]a=newColaEmployee[3];a[0]=newSalariedEmployee(大川,1988,2,29,3500);a[1]=newHourlyEmployee(海鷗,1988,2,29,20,200);a[2]=newSalesEmployee(abc,1988,5,10,30000,0.1);for(ColaEmployeec:a){Company.getSalary(2,c);}}}5、利用接口實(shí)現(xiàn)動(dòng)態(tài)的創(chuàng)建對(duì)象:
(1)創(chuàng)建4個(gè)類1蘋果2香蕉3葡萄4園丁(2)在三種水果的構(gòu)造方法中打印一句話.以蘋果類為例classapple{publicapple(){System.out.println(創(chuàng)建了一個(gè)蘋果類的對(duì)象);}}(3)類圖如下:
ApplePearOranges+create():FruitGardener接口Fruit(4)要求從限制臺(tái)輸入一個(gè)字符串,依據(jù)字符串的值來推斷創(chuàng)建三種水果中哪個(gè)類的對(duì)象。
運(yùn)行結(jié)果如圖:
publicabstractinterfaceFruit{}publicclassAppleimplementsFruit{Apple(){System.out.println(創(chuàng)建了一個(gè)蘋果類的對(duì)象);}}publicclassBananaimplementsFruit{Banana(){System.out.println(創(chuàng)建了一個(gè)香蕉類的對(duì)象);}}publicclassPutaoimplementsFruit{Putao(){System.out.println(創(chuàng)建了一個(gè)葡萄類的對(duì)象);}}publicclassGardener{publicFruitcreat(){Fruitf=null;Scannerinput=newScanner(System.in);Stringname=input.next();if(name.equals(蘋果)){f=newApple();}elseif(name.equals(香蕉)){f=newBanana();}elseif(name.equals(葡萄)){f=newPutao();}else{System.out.println(不會(huì)種);}returnf;}}6、Person類,如下圖:
兩個(gè)測(cè)試類,訪問該P(yáng)erson類,要求(1)TestMain和Person在相同包中test2中(2)TestMain在包test1中,Person在包test2中(學(xué)問點(diǎn):
Java中包的概念)7、修改原來的Person類,將其進(jìn)行良好的封裝packagecom.neusot.test2;publicclassPerson{privateStringname;privateintage;privatedoubleheight;publicvoidperson(){}publicvoidsayHello(){}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}publicdoublegetHeight(){returnheight;}publicvoidsetHeight(doubleheight){this.height=height;}}8、編寫三個(gè)系別的學(xué)生類:
英語系,計(jì)算機(jī)系,文學(xué)系(要求通過繼承學(xué)生類)各系有以下成果:
英語系:
演講,期末考試,期中考試;計(jì)算機(jī)系:
操作實(shí)力,英語寫作,期中考試,期末考試;文學(xué)系:
演講,作品,期末考試,期中考試;各系總分評(píng)測(cè)標(biāo)準(zhǔn):
英語系:
演講50%期末考試25%期中考試25%計(jì)算機(jī)系:
操作實(shí)力40%英語寫作20%期末考試20%期中考試20%文學(xué)系:
演講35%作品35%期末考試15%期中考試15%定義一個(gè)可容納5個(gè)學(xué)生的學(xué)生類數(shù)組,運(yùn)用隨機(jī)數(shù)給該數(shù)組裝入各系學(xué)生的對(duì)象,然后按如下格式輸出數(shù)組中的信息:
學(xué)號(hào):XXXXXXXX姓名:
XXX性別:
X年齡:
XX綜合成果:
XXpublicabstractclassStudent{Stringname;Stringid;Stringsex;intage;doublelastScore;//期末成果doubleminScore;//期中成果Student(Stringname,Stringid,Stringsex,intage,doublelastScore,doubleminScore){this.name=name;this.age=age;this.id=id;this.sex=sex;this.lastScore=lastScore;this.minScore=minScore;}Student(){}publicabstractdoublegetScore();//獲得最終成果publicvoidshow(){System.out.println(學(xué)號(hào):+id+姓名:
+name+性別:
+sex+年齡:
+age+綜合成果:
+getScore());}}publicclassEnglishextendsStudent{doublespeekScore;English(){}English(Stringname,Stringid,Stringsex,intage,doublelastScore,doubleminScore,doublespeekScore){super(name,id,sex,age,lastScore,minScore);this.speekScore=speekScore;}publicdoublegetScore(){returnlastScore*0.25+minScore*0.25+speekScore*0.5;}}publicclassComputerextendsStudent{doublemakeScore;//操作成果doubleengScore;//英語寫作成果Computer(){}Computer(Stringname,Stringid,Stringsex,intage,doublelastScore,doubleminScore,doublemakeScore,doubleengScore){super(name,id,sex,age,lastScore,minScore);this.makeScore=makeScore;this.engScore=engScore;}@OverridepublicdoublegetScore(){//TODOAuto-generatedmethodstubreturnlastScore*0.2+minScore*0.2+engScore*0.2+makeScore*0.4;}}publicclassLiteratureextendsStudent{doublespeekScore;double
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 包公包料合同范本
- 公司物業(yè)托管合同范本
- 2025年度農(nóng)村金融小額貸款合同模板(二零二五版)
- 國有企業(yè)產(chǎn)權(quán)無償劃轉(zhuǎn)合同范本
- 農(nóng)戶轉(zhuǎn)讓農(nóng)用機(jī)械合同范本
- 2025年度生態(tài)農(nóng)業(yè)園工程合同終止及環(huán)境恢復(fù)協(xié)議
- 有限公司股權(quán)轉(zhuǎn)讓合同范本
- 商鋪轉(zhuǎn)租租賃合同范本
- pvc管供銷合同范本
- 商業(yè)攝影制作服務(wù)合同范本
- QC課題提高金剛砂地面施工一次合格率
- 呼吸科護(hù)理管理制度
- TCI 331-2024 工業(yè)污染源產(chǎn)排污核算系數(shù)制定通則
- 浙江省(面試)公務(wù)員考試試題及答案指導(dǎo)(2025年)
- 設(shè)備拆裝施工方案
- 注冊(cè)安全工程師《安全生產(chǎn)管理知識(shí)》科目知識(shí)要點(diǎn)
- 《新時(shí)代公民道德建設(shè)實(shí)施綱要》、《新時(shí)代愛國主義教育實(shí)施綱要》知識(shí)競(jìng)賽試題庫55題(含答案)
- 小學(xué)百科知識(shí)競(jìng)賽題庫200道及答案(完整版)
- JJ∕G(交通) 201-2024公路橋梁支座壓剪試驗(yàn)機(jī)
- 2019-2020學(xué)年七年級(jí)(上)期末數(shù)學(xué)試卷2附解析
- 電話接聽技巧與服務(wù)質(zhì)量提升方案三篇
評(píng)論
0/150
提交評(píng)論