版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——java認(rèn)證習(xí)題第02章有答案版OK該試題還有第0103章SCJP5.0習(xí)題第02章
一、重寫和重載1二、封裝、IS-AHAS-A5四、其次章課后習(xí)題7
一、重寫和重載
問題1)假設(shè)有如下類定義,如下哪些方法可以合法放置在“//Here〞的解釋之后?publicclassRid{
publicvoidamethod(inti,Strings){}//Here}
1)publicvoidamethod(Strings,inti){}2)publicintamethod(inti,Strings){}
3)publicvoidamethod(inti,Stringmystring){}4)publicvoidAmethod(inti,Strings){}答案:1和4
Amethod中的大寫字母A意味著這是不同的方法。
問題2)假設(shè)有如下類定義,哪些代碼可以被合法放置在解釋“//Here〞之后?classBase{
publicBase(inti){}}
publicclassMyOverextendsBase{
publicstaticvoidmain(Stringarg[]){
MyOverm=newMyOver(10);}
MyOver(inti){
super(i);}
MyOver(Strings,inti){
this(i);//Here}}
1)MyOverm=newMyOver():2)super();
3)this(“Hello〞,10);4)Baseb=newBase(10);答案:4
任何this或super的調(diào)用都必需是構(gòu)造函數(shù)中的第一行。由于方法已經(jīng)調(diào)用了this,不能有別的調(diào)用插入了。
問題3)假設(shè)有如下類定義
classMammal{Mammal(){
System.out.println(“Mamml〞);}}
classDogextendsMammal{Dog(){
System.out.println(“Dog〞);}}
publicclassCollieextendsDog{
publicstaticvoidmain(Stringargv[]){Colliec=newCollie();}
Collie(){
this(“GoodDog〞);
System.out.println(“Collie〞);}
Collie(Strings){
System.out.println(s);}}
將會輸出什么?
1)Compiletimeerror
2)Mammal,Dog,GoodDog,Collie3)GoodDog,Collie,Dog,Mammal4)GoodDog,Collie
答案:2)Mammal,Dog,GoodDog,Collie
問題4)下面哪些論述是正確的?1)構(gòu)造方法不能被繼承
2)構(gòu)造方法可以被重寫;《重寫不是重載》.3)父類的構(gòu)造方法可以使用this調(diào)用4)任何方法都可以調(diào)用this和super答案:1
問題5)試圖編譯并運行下面代碼會發(fā)生什么?classBase{
publicvoidamethod(inti,Strings){
System.out.println(“Baseamethod〞);}
Base(){
System.out.println(“BaseConstructor〞);}}
publicclassChildextendsBase{
inti;
StringParm=“Hello〞;
publicstaticvoidmain(Stringargv[]){
Childc=newChild();c.amethod();}
voidamethod(inti,StringParm){
super.amethod(i,Parm);}
publicvoidamethod(){}
}
1)編譯錯誤
2)錯誤,super.amethod(i,Parm)語法不正確3)輸出“BaseConstructor〞
4)錯誤,super.amethod的參數(shù)名字不正確答案:1
這會導(dǎo)致一個錯誤,意思是說“你不能重寫方法使其訪問權(quán)限更靠近私有〞。基類的amethod版本被明確的標(biāo)注為public,但是在子類中沒有標(biāo)識符。好了,所以這不是在考察你的構(gòu)造函數(shù)重載的知識,但是他們也沒在考試中告訴你主題。若這段代碼沒有省略關(guān)鍵字public,將會輸出“Baseconstructor〞,選項3。
問題6)試圖編譯并運行如下代碼時將發(fā)生什么?classMammal{Mammal(){
System.out.println(“Four〞);}
publicvoidears(){
System.out.println(“Two〞);}}
classDogextendsMammal{Dog(){
super.ears();
System.out.println(“Three〞);}}
publicclassScottieextendsDog{
publicstaticvoidmain(Stringargv[]){
System.out.println(“One〞);Scottieh=newScottie();}}
1)One,Three,Two,Four2)One,Four,Three,Two3)One,Four,Two,Three4)Compiletimeerror
答案:3)One,Four,Two,Three
類是從層次的根部往下創(chuàng)立的。因此,首先輸出One,由于它在Scottieh初始化之前創(chuàng)立。
然后,JVM移動到層次的基類,運行“祖父類〞Mammal的構(gòu)造函數(shù)。這會輸出“Four〞。然后,運行Dog的構(gòu)造函數(shù)。Dog的構(gòu)造函數(shù)調(diào)用Mammal中的ears方法,因此輸出“Two〞。最終,Dog的構(gòu)造函數(shù)完成,輸出“Three〞。
問題7)給定下面的類定義publicclassUpton{
publicstaticvoidmain(Stringargv[]){}
publicvoidamethod(inti){}//Here}
下面哪一個在替換//Here后是合法的?1)publicintamethod(intz){}
2)publicintamethod(inti,intj){return99;}3)protectedvoidamethod(longl){}4)privatevoidanothermethod(){}答案:2、3和4
選項1由于兩個原因不會被編譯。第一個相當(dāng)明顯,由于它要求返回一個integer。另一個是試著直接在類內(nèi)部重新定義一個方法。把參數(shù)的名字從i換成z是無效的,并且一個方法不能在同一個類里重寫。
問題8)給定下面的類定義classBase{
publicvoidamethod(){
System.out.println(\}}
publicclassHayextendsBase{
publicstaticvoidmain(Stringargv[]){
Hayh=newHay();h.amethod();}}
下面在類Hay中的哪一個方法將會編譯并使程序打印出字符串\?1)publicintamethod(){System.out.println(\
2)publicvoidamethod(longl){System.out.println(\3)publicvoidamethod(){System.out.println(\4)publicvoidamethod(void){System.out.println(\答案:3)publicvoidamethod(){System.out.println(\
選項3重寫了類Base的方法,因此任何無參數(shù)調(diào)用都調(diào)用這個版本。選項1修改方法的返回值類型。
選項2將會編譯,結(jié)果是調(diào)用父類中的方法
問題9)給定下面的類定義publicclassShrubHill{
publicvoidforegate(StringsName){}//Here
}
下面的哪一個方法可以合法的直接替換//Here?1)publicintforegate(StringsName){}
2)publicvoidforegate(StringBuffersName){}3)publicvoidforeGate(StringsName){}4)privatevoidforegate(StringsType){}答案9)
2)publicvoidforegate(StringBuffersName){}3)publicvoidforeGate(StringsName){}
選項1是試著定義一個方法兩次,有一個int返回值并不能幫助將它與存在的foregate方法相區(qū)分。而像選項4那樣改變方法的參數(shù)名,也不能與存在的方法相區(qū)分。注意,選項3里的foreGate方法有一個大寫的G。
二、封裝、IS-AHAS-A
問題1)假設(shè)你被給予如下設(shè)計
“一個人有姓名,年齡,地址和性別。你將要設(shè)計一個類來表示一類叫做病人的人。這
種人可以被給予診斷,有配偶并且可能活著〞。假設(shè)表示人的類已經(jīng)創(chuàng)立了,當(dāng)你設(shè)計病人類時如下哪些應(yīng)當(dāng)被包含在內(nèi)?1)registrationdate2)age3)sex
4)diagnosis答案1)
1)registrationdate2)diagnosis
對于病人來說,注冊日期是一個合理的添加域,并且設(shè)計明確地指出病人應(yīng)當(dāng)有診斷報告。由于病人是人的一種,它應(yīng)當(dāng)有域age和sex(假設(shè)它們沒有被聲明為私有的)。
問題2)當(dāng)你試圖編譯并運行如下代碼時會發(fā)生什么?classBase{inti=99;
publicvoidamethod(){
System.out.println(
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車行業(yè)市場前景及投資研究報告:海外零部件法雷奧聚焦未來出行研發(fā)、協(xié)同、全球化
- 項目部專職安全員工作總結(jié)
- 四年級下冊語文教案
- 語文A版第十冊語文全冊教案
- 《中式烹調(diào)工藝》-烹飪基礎(chǔ)技能 課件 03鮮活原料的初加工、04原料剔骨分檔出肉技術(shù)
- 2024屆山西省朔州市中考英語考前最后一卷含答案
- 2024屆山東省日照市田家炳實驗中學(xué)中考英語模擬預(yù)測題含答案
- 國電系統(tǒng)-安徽省-2024年《信息安規(guī)》科目 單選題+多選題+判斷題+簡答題真題沖刺卷9月份B卷
- 2024年水楊酸鋅改性樹脂(無碳復(fù)寫紙顯色劑)相關(guān)公司行業(yè)營銷方案
- 高中化學(xué)選修4知識點總結(jié)+期末考卷及答案
- (正式版)JBT 14587-2024 膠體鉛酸蓄電池 技術(shù)規(guī)范
- 安全員繼續(xù)教育考試題庫1000道有完整答案
- 2024年山東青島城市建設(shè)投資集團(tuán)有限責(zé)任公司招聘筆試參考題庫含答案解析
- 部編歷史九上《第6課 希臘羅馬古典文化》課件
- 中醫(yī)優(yōu)勢病種診療方案管理制度
- 小學(xué)班會 課堂互動小游戲 扭蛋機(jī)抽獎?wù)n堂獎勵游戲 課件
- 華盛頓與櫻桃樹的故事
- 關(guān)于教學(xué)改革的知識講座
- 核心素養(yǎng)下的初中物理實驗教學(xué)中的實驗評價設(shè)計
- 智聯(lián)招聘管理能力測評試題及答案
- 《養(yǎng)老護(hù)理員》-課件:職業(yè)安全和個人防護(hù)知識
評論
0/150
提交評論