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

下载本文档

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

文档简介

第7章接口与内部类习题解析1.选择题(1)关于定义接口的关键字,正确的是()。A.extendsB.implementsC.interfaceD.abstract答案:C(2)在Java中,能实现多重继承效果的方式是()A、内部类B、接口C、同步D、适配器答案:B(3)实现接口的关键字是()。A.extendsB.implementsC.interfaceD.final答案:B(4)下列选项中,关于接口的定义正确的是?()A、abstractclassDemo1{abstractvoidspeak();abstractvoideat();}B、interfaceDemo2{voidspeak();voideat();}C、interfaceDemo3{voidspeak()}D、interfaceDemo4{voidspeak(){System.out.println("zjnu");}voideat();}答案:B((5)接口是否可以当做数据类型()。A.可以B.不可以C.不能确定D.以上答案均不正确答案:A(6)Outer类中定义了一个成员内部类Inner,需要在main()方法中创建Inner类实例对象,以下四种方式哪一种是正确的?()A、Innerin=newInner()B、Innerin=newOuter.Inner();C、Outer.Innerin=newOuter.Inner();D、Outer.Innerin=newOuter().newInner();答案:D(7)下面关于抽象类和接口论述正确的是()。A.接口中可以包含普通方法B.抽象类中只能包含抽象方法,不能包含普通方法C.接口中只能定义静态常量属性,不能定义普通属性D.接口中可以包含构造器答案:C(8)关于接口下面的说法正确的是()A.实现一个接口必须实现接口的所有方法B.一个类只能实现一个接口C.接口间不能有继承关系D.接口和抽象类是同一回事答案:A(9)下面关于接口的定义正确的是()A.interfaceB{voidprint(){}}B.abstractinterfaceB{voidprint()}C.interfaceB{voidprint();}D.abstractinterfaceBextendsA1,A2{abstractvoidprint(){};}答案:C(10)在使用interface声明一个接口时,只可以使用()修饰符修饰该接口。A.privateB.protectedC.privateprotectedD.public答案:D2.填空题(1)当一个接口继承多个父类接口时,多个父类接口排列在(extend)关键字之后,各个父类接口之间使用(,)隔开。。(2)接口中只能定义(静态常量属性),不能定义(普通属性);抽象类里可以定义(静态常量属性)也可以定义(普通属性)。(3)定义一个接口,接口的名称是Calculatepublic(interface)(Calculate){finalfloatPI=3.14159f;floatgetArea(floatr);floatgetCircumference(floatr);}(4)下面的代码输出结果是(我是老师我是学生)publicinterfacePeople{ voidSay(Strings);}publicclassTeacherimplementsPeople{//Teacher实现接口 publicvoidSay(Strings){ System.out.print(s); }}publicclassStudentimplementsPeople{//Student实现接口 publicvoidSay(Strings){ System.out.println(s); }}publicclassapp{ publicstaticvoidmain(String[]args){ Peopleteatea=newTeacher(); tea.Say("我是老师"); tea=newStudent(); tea.Say("我是学生"); }}(5)Java中接口的回调指的是:(把实现某一接口的类所创建的对象的引用赋值给该接口声明的接口变量),那么该接口变量就可以调用被类实现的接口方法。3.综合题(1)通过实验掌握接口的声明与使用第一步,使用Eclipse创建名为“task6_1”的Java项目。第二步,在“task6_1”项目中创建名为“Computable”的接口。在包浏览器(“PackageExplorer”)中选择刚刚创建的项目“task6_1”,并单击鼠标右键,并依次选择“New”“Interface”菜单项。系统将显示如下图所示的“Interface”对话框。在上图所示的位置输入接口名称“Computable”,单击“Finish”按钮,系统完成创建接口文件“Computable.java”。然后,在Computable接口中定义两个抽象方法add和sub,代码如右下图所示。第三步,再创建一个名为“Student”的Java类来实现Computable接口。在包浏览器(“PackageExplorer”)中选择项目“task6_1”,并单击鼠标右键,并依次选择“New”“Class”菜单项。系统将显示如下图所示的“Class”对话框。在左上图所示的位置输入类名“Student”,再通过单击“Add”按钮选择需要该类实现的接口(接口选择界面如右上图所示),单击“Finish”按钮完成创建类文件“Student.java”。补充完整生成的Student类的框架代码(删除代码中的“@Override”,并实现add和sub方法),具体代码如下图所示。第四步,在“task6_1”项目中再创建一个名为“Task6_1”的Java主类,Task6_1类的main方法的代码如右上图所示。参考答案:packagetask6_1;publicinterfaceComputable{ publicabstractintadd(inta,intb); abstractintsub(inta,intb);}packagetask6_1;publicclassStudentimplementsComputable{ StringStudentID; publicintadd(inta,intb){ //TODOAuto-generatedmethodstub returna+b; } publicintsub(inta,intb){ //TODOAuto-generatedmethodstub returna-b; }}packagetask6_1;publicclassTask6_1{ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub Computablec=newStudent(); System.out.println(c.add(2,38)); }}(2)通过实验理解面向接口编程的基本思想(把类的成员定义为接口变量)编程实现下面UML图所示的面向接口的软件框架。使用Eclipse创建Java项目“task6_3”,在该项目中创建一个名为“Task6_3”的Java类。Task6_3.java文件中的代码如下图所示(其中包含了PCI接口、使用PCI接口的MotherBoard类,以及实现PCI接口的NetworkCard类和SoundCard类的代码)。参考答案:packagetask6_3;interfacePCI{ publicabstractvoidstart(); publicabstractvoidstop();}classMotherBoard{ PCIpci1,pci2,pci3; voidPowerOn(){ if(pci1!=null)pci1.start(); if(pci2!=null)pci2.start(); if(pci3!=null)pci3.start(); } voidShutDown(){ if(pci1!=null)pci1.stop(); if(pci2!=null)pci2.stop(); if(pci3!=null)pci3.stop(); }}classNetworkCardimplementsPCI{ publicvoidstart(){ System.out.println("网卡开始工作!"); } publicvoidstop(){ System.out.println("网卡停止工作!"); }}classSoundCardimplementsPCI{ publicvoidstart(){ System.out.println("声卡开始工作!"); } publicvoidstop(){ System.out.println("声卡停止工作!"); }}publicclassTask6_3{ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub MotherBoardmBoard=newMotherBoard(); mBoard.pci1=newNetworkCard(); mBoard.pci2=newSoundCard(); mBoard.PowerOn(); mBoard.ShutDown(); }}通过实验理解与掌握普通匿名类的定义与使用使用Eclipse创建Java项目“task7_2A”,在该项目中创建一个名为“Task7_2A”的Java类。Task7_2A.java文件中的代码如下图所示。参考答案:packagetask7_2A;classParent{ publicvoidsayHello(){ Sy

温馨提示

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

评论

0/150

提交评论