12面向对象程序设计基础2.1单项选择题1.下面关于类的继承性的描述中,错误的是()。A.继承是在已有的基础上生成新类的一种方法B.Java语言要求一个子类只有一个父类C.父类中成员的访问权限在子类中将被改变D.子类继承父类的所有成员,但不包括私有的成员方法2.在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是()。A.默认B.protectedC.privateD.public3.在类的修饰符中,规定只能被同一包类所使用的修饰符是()。A.publicB.默认C.finalD.abstract4.下列关于子类继承父类的成员描述中,错误的是()。A.当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法。B.方法重载是编译时处理的,而方法覆盖是在运行时处理的。C.子类中继承父类中的所有成员都可以访问。D.子类中定义有与父类同名变量时,在子类继承父类的操作中,使用继承父类的变量;子类执行自己的操作中,使用自己定义的变量。5.下列关于继承性的描述中,错误的是()。A.一个类可以同时生成多个子类B.子类继承了父类中除私有的成员以外的其他成员C.Java支持单重继承和多重继承D.Java通过接口可使子类使用多个父类的成员6.下列关于抽象类的描述中,错误的是()。A.抽象类是用修饰符abstract说明的B.抽象类是不可以定义对象的C.抽象类是不可以有构造方法的D.抽象类通常要有它的子类7.下列关于构造方法的叙述中,错误的是()。A.构造方法名与类名必须相同B.构造方法没有返回值,且不用void声明C.构造方法只能通过new自动调用D.构造方法不可以重载,但可以继承8.下面叙述中,错误的是()。A.子类继承父类B.子类能替代父类C.父类包含子类D.父类不能替代子类29.下面关于接口的描述中,错误的是()。A.一个类只允许继承一个接口B.定义接口使用的关键字是interfaceC.在继承接口的类中通常要给出接口中定义的抽象方法的具体实现D.接口实际上是由常量和抽象方法构成的特殊类10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?()A.ArrayListmyList=newObject();B.ArrayListmyList=newList();C.ListmyList=newArrayList();D.ListmyList=newList();11.下列哪一个方法与方法publicvoidadd(inta){}为不合理的重载方法?()A.publicvoidadd(chara)B.publicintadd(inta)C.publicvoidadd(inta,intb)D.publicvoidadd(floata)12.MAX_LENGTH是int型public成员变量,变量值保持为常量100,其定义是()。A.publicintMAX_LENGTH=100;B.finalpublicintMAX_LENGTH=100;C.publicfinalintMAX_LENGTH=100;D.finalintMAX_LENGTH=100;13.下面关于封装性的描述中,错误的是()。A.封装体包含属性和行为B.被封装的某些信息在外不可见C.封装提高了可重用性D.封装体中的属性和行为的访问权限相同14.下面关于类方法的描述,错误的是()。A.说明类方法使用关键字staticB.类方法和实例方法一样均占用对象的内存空间C.类方法能用实例和类名调用D.类方法只能处理类变量或调用类方法15.下面关于包的描述中,错误的是()。A.包是若干对象的集合B.使用package语句创建包C.使用import语句引入包D.包分为有名包和无名包两种16.下面哪一个代码段是错误的Java源程序?()A.importjava.io.*;B.importjava.io.*;packagetestpackage;classPerson{/*dosomething...*/}publicclassTest{/*dosomething...*/}publicclassTest{/*dosomething...*/}C.importjava.io.*;D.packagetestpackage;importjava.awt.*;publicclassTest{/*dosomething...*/}publicclassTest{/*dosomething...*/}17.请问所有的异常类皆继承哪一个类?()A.java.lang.ThrowableB.java.lang.ExceptionC.java.lang.ErrorD.java.io.Exception18.哪个关键字可以抛出异常?()A.transientB.throwC.finallyD.catch319.对于已经被定义过可能抛出异常的语句,在编程时()。A.必须使用try/catch语句处理异常,或用throw将其抛出。B.如果程序错误,必须使用try/catch语句处理异常。C.可以置之不理。D.只能使用try/catch语句处理。20.下面程序段的执行结果是什么?()publicclassFoo{publicstaticvoidmain(String[]args){try{return;}finally{System.out.println(Finally);}}}A.编译能通过,但运行时会出现一个例外。B.程序正常运行,并输出Finally。C.程序正常运行,但不输出任何结果。D.因为没有catch语句块,所以不能通过编译。21.如果下列的方法能够正常运行,在控制台上将不显示哪一个?()publicvoidexample(){try{unsafe();System.out.println(Test1);}catch(SafeExceptione){System.out.println(Test2);}finally{System.out.println(Test3);}System.out.println(Test4);}A.Test1B.Test2C.Test3D.Test422.指出错误的表达式有(C)。A.doublea=2.0;B.Doublea=newDouble(2.0);C.byteA=350;D.inta=120;23.System类在哪个包中?()A.java.awtB.java.langC.java.utilD.java.io24.关于Float,下列说法错误的是()。A.Float在java.lang包中B.Floata=1.0是正确的赋值方法C.Float是一个类D.Floata=newFloat(1.0)是正确的赋值方法25.以下关于继承的叙述正确的是()。A、在Java中类只允许单一继承4B、在Java中一个类只能实现一个接口C、在Java中一个类不能同时继承一个类和实现一个接口D、在Java中接口只允许单一继承26.以下哪个不是Java的原始数据类型()A、intB、BooleanC、floatD、char27.以下哪项可能包含菜单条()。A、JPanelB、JFrameC、JTableD、JScrollPane28.若需要定义一个类域或类方法,应使用哪种修饰符?()A、staticB、packageC、privateD、public29.给出下面代码,关于该程序以下哪个说法是正确的?()publicclassPerson{staticintarr[]=newint[5];publicstaticvoidmain(Stringa[]){System.out.println(arr[0]);}}A、编译时将产生错误B、编译时正确,运行时将产生错误C、输出零D、输出空30.在使用interface声明一个接口时,只可以使用()修饰符修饰该接口。A、privateB、protectedC、privateprotectedD、public31.类Parent、Child定义如下:1.publicclassParent2.{publicfloataFun(floata,floatb)throws3.IOException{}4.}5.publicclassChildextendsParent{6.7.}将以下哪种方法插入行6是不合法的。()A、floataFun(floata,floatb){}B、publicintaFun(inta,intb)throwsException{}C、publicfloataFun(floatp,floatq){}D、publicintaFun(inta,intb)throwsIOException{}32.定义一个类,必须使用的关键字是()A、publicB、classC、interfaceD、static33.定义一个接口必须使用的关键字是()A、publicB、classC、interfaceD、static34.下面说法错误的是()。A)final可修饰类、属性(变量)、方法。B)abstract可修饰类、方法。C)抽象方法只有方法头,没有方法体。D)关键字final和abstract可以同时使用。35.下面关于Java中异常处理try块的说法不正确的是()?5A)try块后通常应有一个catch块,用来处理try块中抛出的异常。B)catch块后可以有finally块,也可以没有。C)可能抛出异常的方法调用应放在try块中。D)对抛出的异常的处理必须放在try块中36.下面哪一个关键字不能用来控制对类成员的访问()?A)publicB)protectedC)privateD)default37.类B是一个抽象类,类C是类B的非抽象子类,下列创建对象x1的语句中不正确的是()。A)Bx1=newB();B)Bx1=newC();C)Cx1=newC();D)Objectx1=newC();38.下面关于外部类和内部类成员的相互访问的规则中,正确的选项是()。A)内部类可以不能访问外部类的成员B)外部类可以直接访问内部类的成员C)外部类不能访问内部类的成员D)外部类可通过创建内部类的实例来访问内部类的成员39.下列修饰符中与访问控制无关的是()A.privateB.publicC.protectedD.final40.void的含义:()A.方法没有返回值B.方法体为空C.没有意义D.定义方法时必须使用41.关于对象成员占用内存的说法哪个正确?()A.同一个类的对象共用同一段内存B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存D.以上都不对42.下列说法哪个正确?A.不需要定义类,就能创建对象B.对象中必须有属性和方法C.属性可以是简单变量,也可以是一个对象D、属性必须是简单变量43.关于接口哪个正确?()A、实现一个接口必须实现接口的所有方法B.一个类只能实现一个接口C.接口间不能有继承关系D.接口和抽象类是同一回事44.覆盖与重载的关系是()A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中B.覆盖方法可以不同名,而重载方法必须同名C.final修饰的方法可以被覆盖,但不能被重载D.覆盖与重载是同一回事45.抽象方法:()A、可以有方法体B、可以出现在非抽象类中6C、是没有方法体的方法D、抽象类中的方法都是抽象方法2.2填空题1.把对象实例化可以生成多个对象,使用_________运算符为对象分配内存空间。2.java程序引入接口的概念,是为了弥补只允许类的________的缺憾。3.java语言以_______为程序的基本单位,它是具有某些共同特性实体的集合,是一种抽象的概念。4.抽象方法只能存在于抽象类中。抽象方法用关键字________来修饰。5.java语言中_______是所有类的根。6.在java中有一种叫做_______特殊方法,在程序中用它来对类成员进行初始化。7