第7章 接口与内部类习题解析_第1页
第7章 接口与内部类习题解析_第2页
第7章 接口与内部类习题解析_第3页
第7章 接口与内部类习题解析_第4页
第7章 接口与内部类习题解析_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章接口与内部类习题解析

1.选择题

(1)关于定义接口的关键字,正确的是()。

A.extendsB.implements

C.interfaceD.abstract

答案:C

(2)在Java中,能实现多重继承效果的方式是()

A、内部类

B、接口

C、同步

D、适配器

答案:B

(3)实现接口的关键字是()。

A.extendsB.implements

C.interfaceD.final

答案:B

(4)下列选项中,关于接口的定义正确的是?()

A、abstractclassDemol{abstractvoidspeak();abstractvoid

eat();}

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

C、interfaceDemo3{voidspeak()}

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

voideat();}

答案:B

((5)接口是否可以当做数据类型()0

A.可以

B.不可以

C.不能确定

D.以,答案均不正确

答案:A

(6)Outer类中定义了一个成员内部类Inner,需要在main。方法中创建

Inner类实例对象,以下四种方式哪一种是正确的?()

A^Innerin=newInner()

R、Innerin=newOuter.Inner();

C^Outer.Innerin=newOuter.Inner0;

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

答案:D

(7)下面关于抽象类和接口论述正确的是()o

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

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

C.接口中只能定义静态常量属性,不能定义普通属性

D.接口中可以包含构造器

答案:C

(8)关于接口下面的说法正确的是()

A.实现一个接口必须实现接口的所有方法

B.一个类只能实现一个接口

C.接口间不能有继承关系

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

答案:A

(9)下面关于接口的定义正确的是()

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)

关键字之后,各个父类接口之间使用(,)隔开。。

(2)接口中只能定义(静态常量属性),不能定义(普通属性);

抽象类里可以定义(静态常量属性)也可以定义(普通属性)。

(3)定义一个接口,接口的名称是Calculate

public(interface)(Calculate){

filialfloatPI=3.14159f;

floatgetArea(floatr);

floatgetCircumference(floatr);

(4)下面的代码输出结果是(我是老师我是学生)

publicinterfacePeople{

voidSay(Strings);

第二步,在“tas第」”项目中创建名为“Computable”的接口。在包浏览

器(“PackageExplorer")中选择刚刚创建的项目“task6_l”,并单击鼠标右键,

并依次选择“New”“Interface”菜单项。系统将显示如下图所示的“Interface”

对话框。

在上图所示的位置输入接口名称“Computable”,单击“Finish”按钮,系统完成创建接

口文件“Computable.java"。然后,在Computable接口中定义两个抽象方法add和sub,

代码如右下图所示。

publicinterfaceComputable{|//问题1:接口是否可以定义非抽象方法?|

publicabstractintadd(inta^intb);_______________________

abstractintsub(inta,intb);|//问盲2:该抽象方法是友好方法吗?|

}

第三步,再创建一个名为“Student”的Java类来实现Computable接口。在包浏览器

("PackageExplorer”)中选择项目“task6_l”,并单击鼠标右键,并依次选择“New”“Class”

菜单项。系统将显示如下图所示的“Class”对话框。

在左上图所示的位置输入类名“Student”,再通过单击“Add”按钮选择需要该类实现

的接口(接口选择界面如右上图所示),单击“Finish”按钮完成创建类文件“Studentjava”。

补充完整生成的Student类的框架代码(删除代码中的“@Override”,并实现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”项目中再创建一个名为“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)通过实验理解面向接口编程的基本思想〔把类的成员定义为接口变量)

编程实现下面UML图所示的面向接口的软件框架。

使用Eclipse创建Java项目“task6_3”,在该项目中创建一个名为“Task6_3”的Java类。

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

MotherBoard类,以及实现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(“网卡开始工作!");

)

publicvoidstop(){

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

)

)

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(“网卡开始工作!”);

)

publicvoidstopO{

System.out.printin("网卡停止工作!〃);

)

)

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创建Java

项目“task7_2A”,在该项目中创建一个名为“Task7_2A”的J

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论