第7章 接口與內(nèi)部類習題解析_第1頁
第7章 接口與內(nèi)部類習題解析_第2頁
第7章 接口與內(nèi)部類習題解析_第3頁
第7章 接口與內(nèi)部類習題解析_第4頁
第7章 接口與內(nèi)部類習題解析_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章接口與內(nèi)部類習題解析

1.選擇題

(1)關(guān)于定義接口的關(guān)鍵字,正確的是()。

A.extendsB.implements

C.interfaceD.abstract

答案:C

(2)在Java中,能實現(xiàn)多重繼承效果的方式是()

A、內(nèi)部類

B、接口

C、同步

D、適配器

答案:B

(3)實現(xiàn)接口的關(guān)鍵字是()。

A.extendsB.implements

C.interfaceD.final

答案:B

(4)下列選項中,關(guān)于接口的定義正確的是?()

A、abstractclassDemol{abstractvoidspeak();abstractvoid

eat();}

B、interfaceDemo2{voidspeak();voideat();}

C、interfaceDemo3{voidspeak()}

D、interfaceDemo4{voidspeak(){System.out.printin(^zjnu7");}

voideat();}

答案:B

((5)接口是否可以當做數(shù)據(jù)類型()0

A.可以

B.不可以

C.不能確定

D.以,答案均不正確

答案:A

(6)Outer類中定義了一個成員內(nèi)部類Inner,需要在main。方法中創(chuàng)建

Inner類實例對象,以下四種方式哪一種是正確的?()

A^Innerin=newInner()

R、Innerin=newOuter.Inner();

C^Outer.Innerin=newOuter.Inner0;

D、Outer.Innerin=newOuter().newInner();

答案:D

(7)下面關(guān)于抽象類和接口論述正確的是()o

A.接口中可以包含普通方法

B.抽象類中只能包含抽象方法,不能包含普通方法

C.接口中只能定義靜態(tài)常量屬性,不能定義普通屬性

D.接口中可以包含構(gòu)造器

答案:C

(8)關(guān)于接口下面的說法正確的是()

A.實現(xiàn)一個接口必須實現(xiàn)接口的所有方法

B.一個類只能實現(xiàn)一個接口

C.接口間不能有繼承關(guān)系

D.接口和抽象類是同一回事

答案:A

(9)下面關(guān)于接口的定義正確的是()

A.interfaceB{voidprint(){}}

B.abstractinterfaceB{voidprint;)}

C.interfaceB{voidprint();)

D.abstractinterfaceBextendsAl,A2{abstractvoidprint(){);}

答案:C

(10)在使用interface聲明一個接口時,只可以使用()修

飾符修飾該接口。

A.privateB.protected

C.privateprotectedD.public

答案:D

2.填空題

(1)當一個接口繼承多個父類接口時,多個父類接口排列在(extend)

關(guān)鍵字之后,各個父類接口之間使用(,)隔開。。

(2)接口中只能定義(靜態(tài)常量屬性),不能定義(普通屬性);

抽象類里可以定義(靜態(tài)常量屬性)也可以定義(普通屬性)。

(3)定義一個接口,接口的名稱是Calculate

public(interface)(Calculate){

filialfloatPI=3.14159f;

floatgetArea(floatr);

floatgetCircumference(floatr);

(4)下面的代碼輸出結(jié)果是(我是老師我是學生)

publicinterfacePeople{

voidSay(Strings);

第二步,在“tas第」”項目中創(chuàng)建名為“Computable”的接口。在包瀏覽

器(“PackageExplorer")中選擇剛剛創(chuàng)建的項目“task6_l”,并單擊鼠標右鍵,

并依次選擇“New”“Interface”菜單項。系統(tǒng)將顯示如下圖所示的“Interface”

對話框。

在上圖所示的位置輸入接口名稱“Computable”,單擊“Finish”按鈕,系統(tǒng)完成創(chuàng)建接

口文件“Computable.java"。然后,在Computable接口中定義兩個抽象方法add和sub,

代碼如右下圖所示。

publicinterfaceComputable{|//問題1:接口是否可以定義非抽象方法?|

publicabstractintadd(inta^intb);_______________________

abstractintsub(inta,intb);|//問盲2:該抽象方法是友好方法嗎?|

}

第三步,再創(chuàng)建一個名為“Student”的Java類來實現(xiàn)Computable接口。在包瀏覽器

("PackageExplorer”)中選擇項目“task6_l”,并單擊鼠標右鍵,并依次選擇“New”“Class”

菜單項。系統(tǒng)將顯示如下圖所示的“Class”對話框。

在左上圖所示的位置輸入類名“Student”,再通過單擊“Add”按鈕選擇需要該類實現(xiàn)

的接口(接口選擇界面如右上圖所示),單擊“Finish”按鈕完成創(chuàng)建類文件“Studentjava”。

補充完整生成的Student類的框架代碼(刪除代碼中的“@Override”,并實現(xiàn)add和sub

方法),具體代碼如下圖所示。

publicclassStudentiaplwentsCcmputable{

StringstudentID)

pub!icstaticvoidmain(StrinRflargs)(

publicintadd(inta,intb){〃嵬/口鄭就〃問題3:語句"Computablec=newComputable。;”是否合法?說明理由

returna+b;Computablec=newStudent();

)System.out.println(c.add(2,38));

V/問及4:語句"System.out.println(c.studentID);"是否合法?說明理由|

publicintsubfinta;intb){〃變廉口中際法)

returna-b;

}

)

第四步,在“task6_l”項目中再創(chuàng)建一個名為“Task6_l”的Java土類,Task6_l類的

main方法的代碼如右上圖所示。

參考答案:

packagetask6_l;

publicinterfaceComputable(

publicabstractintadd(inta,intb;;

abstractintsub(inta,intb);

packagetask61:

publicclassStudentimplementsComputable{

StringStudentlD;

publicintadd(inta,intb){

//TODOAuto-generatedmethodstub

returnatb;

)

publicintsub(inta,intb){

//TODOAuto-generatedmethodstub

returna-b;

}

packagetask61:

publicclassTask6_l{

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

Computablec=newStudent();

System.out.printin(c.add(2,38));

}

}

(2)通過實驗理解面向接口編程的基本思想〔把類的成員定義為接口變量)

編程實現(xiàn)下面UML圖所示的面向接口的軟件框架。

使用Eclipse創(chuàng)建Java項目“task6_3”,在該項目中創(chuàng)建一個名為“Task6_3”的Java類。

Task6_3.java文件中的代碼如下圖所示(其中包含了PCI接口、使用PCI接口的

MotherBoard類,以及實現(xiàn)PQ接口的NetworkCard類和SoundCard類的代碼)。

interfacePCI{//聲明PCI接口

publicabstractvoidstart。;//聲明抽象方法

publicabstractvoidstop();//聲明抽象方法

)

classMotherBoard{

PCIpcil,pci2,pci3;//把對象成員聲明為接口類型

voidPowerOn(){

if(pcil!=null)pcil.start();

if(pci2!=null)pci2.start();

if(pci3!=null)pci3.start();

)

voidShutDown(){

if(pcil!=null)pcil.stop();

if(pci2!=null)pci2.stop();

if(pci3!=null)pci3.stop();

)

)

classNetworkCardimplementsPCI{

publicvoidstart(){

System.out.printIn(“網(wǎng)卡開始工作!");

)

publicvoidstop(){

System.out.printin("網(wǎng)卡停止工作!”);

)

)

classSoundCardimplementsPCI{

publicvoidstart(){

System.out.printIn("聲卡開始工作!”);

)

publicvoidstop(){

System.out.printin("聲卡停止工作!”);

)

}

publicclassTask62{

publicstaticvoidmain(String[]args){

MotherBoardmBoard=newMotherBoard();

mBoard.pcil=newNetworkCard();

mBoard.pci2=newSoundCard();

mBoard.PowerOn();

mBoard.ShutDown();

)

}

參考答案:

packagetask63:

interfacePCI{

publicabstractvoidstart();

publicabstractvoidstopO;

}

classMotherBoard{

PCIpci1,pci2,pci3;

voidPowerOn9{

if(pcil!=null)pcil.start();

if(pci2!=null)pci2.start();

if(pci3!=null)pci3.start();

voidShutDownO{

if(pcil!=null)pcil.stop();

if(pci2!=null)pci2.stopO;

if(pci3!=null)pci3.stopO;

}

)

classNetworkCardimplementsPCI{

publicvoidstart0{

System.out.printin(“網(wǎng)卡開始工作!”);

)

publicvoidstopO{

System.out.printin("網(wǎng)卡停止工作!〃);

)

)

classSoundCardimplementsPCI{

publicvoidstart(){

System.out.printin(〃聲卡開始工作!〃);

)

publicvoldstop0(

System.out.printIn("聲卡停止工作!〃);

}

)

publicclassTask63{

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

MotherBoardmBoard=newMotherBoard();

mBoard.pcil=newNetworkCardO;

mBoard.pci2=newSoundCard();

mBoard.PowerOn();

mBoard.ShutDownO;

}

(3)通過實驗理解與掌握普通匿名類的定義與使用使用Eclipse創(chuàng)建Java

項目“task7_2A”,在該項目中創(chuàng)建一個名為“Task7_2A”的J

溫馨提示

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

評論

0/150

提交評論