面向对象程序设计练习题.docx

上传人:b****8 文档编号:29253946 上传时间:2023-07-21 格式:DOCX 页数:56 大小:52.49KB
下载 相关 举报
面向对象程序设计练习题.docx_第1页
第1页 / 共56页
面向对象程序设计练习题.docx_第2页
第2页 / 共56页
面向对象程序设计练习题.docx_第3页
第3页 / 共56页
面向对象程序设计练习题.docx_第4页
第4页 / 共56页
面向对象程序设计练习题.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

面向对象程序设计练习题.docx

《面向对象程序设计练习题.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计练习题.docx(56页珍藏版)》请在冰豆网上搜索。

面向对象程序设计练习题.docx

面向对象程序设计练习题

面向对象程序设计

一、选择题

1、JAVA语言中,在类定义时使用final关键字修饰,是指这个类(A)

A、不能被继承B、在子类方法中不能被调用

C、能被别的程序自由调用D、不能被子类的方法覆盖

2、下列选项中,表示数据或方法可以被同一包中的任何类或它的子类访问,即使子类在不同的包中也可以的修饰符是(A)

A、publicB、protectedC、privateD、final

3、下列选项中,表示数据或方法只能被本类访问的修饰符是(C)

A、publicB、protectedC、privateD、final

4、下列选项中,接口中方法的默认可见性修饰符是(A)

A、publicB、protectedC、privateD、final

5、方法的重载指多个方法可以使用相同的名字,但是参数的数量或类型必须不完全相同,即方法体有所不同,它实现了java编译时的(A)

A、多态性B、接口C、封装性D、继承性

6、在某个类中存在一个方法、voidsort(intx),以下不能作为这个方法的重载的声明的是(B)。

A、publicfloatsort(floatx)B、intsort(inty)

C、doublesort(intx,inty)D、voidsort(doubley)

7、为了区分类中重载的同名的不同方法,要求(A)。

A、采用不同的形式参数列表B、返回值类型不同

C、调用时用类名或对象名做前缀D、参数名不同

8、在类的定义中,通过使用(A)关键字可创建一个现有类的子类。

A、extendsB、implementsC、inheritsD、modifies

9、为了调用超类的方法,可以使用(C)关键字后跟包含该超类所需参数的一对圆括号。

A、superclassB、superconstructorC、superD、以上答案都不对

10、关键字(B)表示某个新类是由一个现有的类中继承的

A、interitsB、extendsC、reusesD、以上答案均不对

11、JAVA语言中的类间的继承关系是(B)

A、 多重 B、 单重 C、 线程 D、 不能继承

12、下列选项中,用于定义子类时声明父类名的关键字是(C)

A、interfaceB、packageC、extendsD、class

13、下列关键字中,用于声明类实现接口的关键字是(A)

A、implementsB、packageC、extendsD、class

14、下列修饰符可以用于说明类的是(C)

A、privateB、staticC、abstractD、protected

15、用于定义类成员的访问控制权的一组关键字是(D)

A、class,float,double,publicB、float,boolean,int,long

C、char,extends,float,doubleD、public,private,protected

16、下列哪些说法是正确的(A)

A、JAVA语言只允许单继承

B、JAVA语言中只允许实现一个接口

C、java语言不允许同时继承一个类并实现一个接口

D、JAVA语言的单一继承使得代码更加可靠

17、方法的重载是指(A)

A、两个或两个以上的方法取相同的方法名,但是参数的个数或类型不同

B、两个以上的方法去相同的名字和具有相同参数个数,但形参的类型可以不同

C、两个以上的方法名字不同,但形参的个数或类型相同

D、两个以上的方法取相同的方法名,并方法的返回值类型相同

18、下列关于类说法不正确的是(D)

A、类是JAVA语言中的一种复合数据类型

B、类是包含数据变量和方法

C、类是对所有具有一定共性的对象的抽象

D、JAVA语言的类支持多继承

19、下面哪个说法确(D)

A、如果某公共的类被声明在一个源文件中,则该类必须与源文件具有相同的名字

B、JAVA语言中,一个类只能是实现一个接口

C、如果某源文件包含package语句,则该语句必须是第一个非空、非注释行

D、接口中的方法必须是抽象的,但可以不用关键abstract修饰

20、类的设计要求它的某个成员变量不能被外部类直接访问,应该使用下面的那些修饰符获得需要的访问控制(D)

A、publicB、不加修饰符C、protectedD、private

21、指出下列哪个方法不是方法publicvoidadd(inta){}的合理的重载(A)

A、publicintadd(inta)B、publicvoidadd(longa)

C、publicvoidadd(inta,intb)D、publicvoidadd(floata)

22、下列说法正确的是(A)

A、用final修饰一个类表明这个类不可以派生子类

B、用final修饰一个方法表明这个方法不能被覆盖

C、用final修饰一个变量会变成一个常量

D、用final修饰的类可以被继承

23、下列程序片断用的是什么机制?

(B)

classStudent{

Stringname;

intage;

Student(){}

Student(Stringn,inta){name=n;age=a;}

Student(Stringn){name=n;}

}

A、方法的覆盖B、构造方法重载C、多态D、 这是错误的代码

24、关于抽象类下列哪个描述正确?

(C)

A、抽象类不能包含抽象方法。

B、接口和抽象类是一回事。

C、抽象类不能实例化,即不能生成对象。

D、抽象类可以实例化对象。

25、关于被私有保护访问控制符privateprotected修饰的成员变量,以下说法正确的是(B)

A、可以被三种类所引用:

该类自身、与它在同一个包中的其他类、在其他包中的该类的子类

B、可以被两种类访问和引用:

该类本身、该类的所有子类

C、只能被该类自身所访问和修改

D、只能被同一个包中的类访问

26、编译并运行以下程序,以下描述哪个选项是正确的(C)

classX{

protectedStringtoString(){

returnsuper.toString();}

}

A、编译通过运行无异常B、编译通过但运行时出错、

C、行2出错,不能成功编译D、不能成功编译,行3出错

27、下列关于修饰符混用的说法,错误的是(D)

A、abstract不能与final并列修饰同一个类

B、abstract类中不可以有private的成员

C、abstract方法必须在abstract类中

D、static方法中能处理非static的属性

28、类Test1定义如下:

publicclassTest1{

publicfloataMethod(floata,floatb){}

}

将以下哪种方法插入行3是不合法的。

(B)

A、 publicfloataMethod(floata,floatb,floatc){}

B、 publicfloataMethod(floatc,floatd){}

C、publicintaMethod(inta,intb){}

D、 privatefloataMethod(inta,intb,intc)

29、类Test1、Test2定义如下、

1.publicclassTest1

2.{publicfloataMethod(floata,floatb)throws

3.IOException{}

4. }

5. publicclassTest2extendsTest1{

6.

7.}

将以下哪种方法插入行6是不合法的。

()

A、floataMethod(floata,floatb){}

B、publicintaMethod(inta,intb)throwsException{}

C、publicfloataMethod(floatp,floatq){}

D、publicintaMethod(inta,intb)throwsIOException{}

30、下列有关Java中接口的说法哪个是正确的?

()

A、接口中含有具体方法的实现代码

B、若一个类要实现一个接口,则用到“implements”关键字

C、若一个类要实现一个接口,则用到“extends”关键字

D、接口不允许继承

31、如果有一个对象myListener(其中myListener对象实现了ActionListener接口),下列哪条语句使得myListener对象能够接受处理来自于smallButton按钮对象的动作事件?

()

A、smallButton.add(myListener);

B、 smallButton.addListener(myListener);

C、 smallButton.addActionListener(myListener);

D、 smallButton.addItem(myListener);

32、不允许作为类及类成员的访问控制符的是(     )。

A、public       B、private C、static       D、protected

33、对于构造方法,下列叙述不正确的是()

A、构造方法是类的一种特殊方法,他的方法名必须与类名相同。

B、构造方法的返回值类型只能是void型。

C、构造方法的主要作用是完成对类的对象的初始化工作。

D、一般在创建新对象时,系统会自动调节用构造方法。

34、在JAVA中,一个类可以同时定义许多同名的方法,这些方法的形式参数的个数、类型、顺序各不相同,返回值也可以不相同,这种面向对象程序特征称为()

A、隐藏B、覆盖C、重载D、JAVA不支持此特性

35、ArrayList类的()方法可用来检索ArrayList中一个特定位置上放的元素

A、getB、insertC、getAtD、retrieve

36、若已经使用AA类创建对象a和BB类创建对象b,则下面的哪一个方法调用是正确的()

A、a.showB、AA.showC、AA.showD、a.show

b.showBB.showb.showBB.show

37、若在某一个类定义中定义有如下的方法abstractvoidperformDial();

该方法属于()。

 A、本地方法B、最终方法C、成员方法D、抽象方法

38、设有下面两个类的定义、

 classPerson{classStudentextendsPerson{

 longid;//身份证号intscore;//入学总分

 Stringname;//姓名intgetScore(){

 }returnscore;

 }

 }

问:

类Person和类Student的关系是()。

 A、包含关系B、继承关系

 C、关联关系D、无关系,上述类定义有语法错误

39、如果子类中的方法mymethod()覆盖了父类中的方法mymethod(),假设父类方法头部定义如下:

voidmymethod(inta),则子类方法的定义不合法的是、()

A、publicvoidmymethod(inta)B、protectedvoidmymethod(inta)

C、privatevoidmymethod(inta)D、voidmymethod(inta)

40、ArrayList对象的()方法将返回一个可一次访问ArrayList中元素的迭代器

A、iteratorB、getIteratorC、returnTteratorD、以上答案都不对

41、为删除ArrayList中的一个特定索引所对应的元素。

应使用()方法

A、removeB、removeAtC、deleteD、deleteAt

42、用private声明的类成员,其最大的访问范围是()。

A、本类B、本包中的所有类C、所有包中的子类D、所有包中的全部类

43、对于任意一个类,用户所能定义的构造方法的个数至多为()。

A、0个    B、1个      C、2个        D、任意个  

44、构造方法何时被调用()

A、类定义时B、创建对象时C、调用对象方法时D、使用对象的变量时

45、如果创建的一个子类覆盖一个父类public方法,则对该方法可以使用哪些修饰符修饰?

()

A、publicB、public和protected

C、priviteD、任意修饰符都可以,由系统随机选取

46、关于被保护访问控制符protected修饰的成员变量,以下说法正确的是()

A、可以被三种类所引用:

该类自身、与它在同一个包中的其他类、在其他包中的该类的子类

B、可以被两种类访问和引用:

该类本身、该类的所有子类

C、只能被该类自身所访问和修改

D、只能被同一个包中的类访问

47、下面对java继承机制描述错误的是、()

A、声明子类时用extends关键字B、继承是面向对象的一个重要特征

C、java支持多重继承D、继承时子类可以添加自己的方法

48、对关键字super的用法描述正确的是、()

A、用来调用父类的构造方法B、用来调用父类中被重载的方法

C、用来调用父类中隐藏的成员变量D、以上说法都正确

49、使用ArrayList类的()方法生成一个迭代器

A、getIteratorB、makeIteratorC、iteratorD、iterate

50、当子类中的成员变量与父类中的成员变量相同时:

()

A、子类中的成员变量隐藏父类中的变量B、父类中的成员变量隐藏子类中的变量

C、子类中变量无效D、该声明非法

51、类classA中方法定义为protectedvoidf(),则该方法的访问性是()

A、所有类都访问该方法

B、所有子类都访问该方法

C、同一目录下的类可以访问该方法,但需要用import语句装载该类

D、以上均不对

52、在Java中,关键字()使类不能派生出子类。

A、finalB、publicC、privateD、protected

53、在Java中,类Worker是类Person的子类,Worker的构造方法中有一句“super()”,该语句()。

A、调用类Worker中定义的super()方法;B、调用类Person中定义的super()方法;

C、调用类Person的构造函数;D、调用类Worker的构造函数;

54、下列说法正确的是?

()

A、一个子类可以有多个父类,一个父类也可以有多个子类

B、一个子类可以有多个父类,但一个父类只可以有一个子类

C、一个子类可以有一个父类,但一个父类可以有多个子类

D、上述说法都不对

55、已知类关系如下:

classEmployee{…};

classManagerextendsEmployee{…};则以下有关创建对象的语句不正确的是()

A、Employeee=newManager();B、Employeem=newEmployee();

C、Managerc=newManager();D、Managerd=newEmployee();

56、在Java程序中,对象之间的相互通信通过()

A、继承实现B、调用类的方法实现C、封装实现D、方法重载实现

57、关于抽象类正确的是()

A、抽象类中不可以有非抽象方法。

B、某个非抽象类的父类是抽象类,则这个子类必须重载父类所有的抽象方法。

C、不能用抽象类去创建对象。

D、接口和抽象类是同一个概念。

58、下面关于抽象类的描述错误的是()

A、继承抽象类可以创建子类B、抽象类中一定有抽象方法

C、抽象类中可以有成员方法D、抽象方法只能存在抽象类或接口中

59、下面选项正确的是()

A、抽象类可以有构造方法。

B、接口可以有构造方法。

C、可以用new操作符操作一个接口。

D、可以用new操作符操作一个抽象类。

60、()访问修饰符可允许其他类对某个方法进行调用

A、publicB、privateC、默认D、以上答案都不对

61、使用()方法可以获取得到某个实例变量的值。

A、get方法B、return语句C、值的方法D、set方法

62、一个private实例变量不能()

A、在声明时被初始化B、在所声明类的外侧被初始化

C、在某个构造方法之内初始化D、初始化为默认值

63、构造方法和普通方法之间的一个重要区别是()

A、构造方法不能指定返回值类型B、构造方法不能指定任何参数

C、同一文件中,构造方法位于其他方法之前D、构造方法能够向实例变量赋值

64、一个类可得到许多(),正如一个基本类型可得到许多变量一样

A、名称B、对象C、值D、类型

65、set方法能够为开发人员()、

A、提供校验的范围B、修改数据

C、提供数据验证D、以上答案都正确

66、声明为private的实例变量不能直接()访问

A、在类的外侧B、由同一个类的其他方法

C、由类的构造方法D、在同一个类的内部

67、下列选项中,定义最终类的关键字是()。

A、interfaceB、implementsC、abstractD、final

68、Java语言的类间的继承关系是()

A、单继承B、多继承C、单继承和多继承D、不能继承

69、使用()语句可调用超类中无参的构造方法

A、super();B、superclass();C、superClass();D、以上答案不对

70、当子类覆盖超类中的方法时,如果要在子类中完成对超类方法的访问,那么在调用时需要在对象的名字前添加一个()关键字和一个()

A、super分号(;)B、super逗号(,)

C、super点(.)D、以上答案都不对

71、Graphics类的()方法将绘制一个填充的矩形

A、filledRectB、rectangleC、solidRectD、fillRect

72、如果Truck类扩展Vehicle类那么,若现在希望从Truck类中调用Vehicle类的一个无参的构造方法,则需编写的代码应为()

A、Truck()B、superClass()C、super()D、noArgument()

73、如果Truck类扩展了Vehicle类,那么称Truck类为(),称Vehicle类为()

A、超类,子类B、子类,超类C、超类,直接超类D、直接超类,超类

74、当子类覆盖其超类中的方法时,()

A、超类的方法需要拥有和子类方法相同的方法头

B、超类的方法将被子类的方法所取代

C、应使用关键字super后跟一个点(.)来实现子类中超类方法的访问

D、以上答案都对

75、在()关系中,子类的对象也可看作是其超类的一个对象

A、isaB、likeaC、hasaD、以上答案都不对

76、在()关系中,类中可包含其他类的对象的引用

A、isaB、likeaC、hasaD、以上答案都不对

77、一个类在实现接口时,必须()

A、额外的定义一个实例变量B、实现接口中的所有方法

C、扩展该接口D、以上答案都不对

78、匿名内部类()

A、没有名字B、在另一个类的内部定义

C、在定义外将创建一个实例D、以上答案都对

79、利用多态,使用同一个()可产生不同的操作,这取决于调用方法的参数类型。

A、方法返回类型B、实例变量C、局部变量D、方法名

80、如果MyTruck类继承MyCar类,则()

A、MyTruck类的对象可以赋值给MyCar类型的变量

B、MyCar类的对象可以赋值给MyTruck类型的变量

C、两个类型的对象可以相互赋值给对方类型的变量

D、A和B

81、多态能够让开发人员()进行编程

A、以抽象的形式B、以全局的形式C、以特定的形式D、A和B

82、对于使用多态的应用程序来说,某个对象的确切类型()

A、执行时才可以知道B、应用程序编译时能够判断

C、程序员编写程序时就已知道D、永远不会知道

83、通过继承,使用()类型的变量可以调用超类和子类的方法

A、基本B、超类C、子类D、以上答案都不对

84、下面哪个语句是正确的?

()

A、Panelp=newPanel();B、Buttonb=newObject("B");

C、Panelp=newFrame();D、Framef=newPanel();

85、指出下列程序的错误,描述正确的是:

()

  finalclassFirst{

   privateinta=1;

   intb=2;

  }

  classSecondextendsFirst{

   publicvoidmethod(){

    System.out.println(a+b);

   }

  }

A、println()参数应为字符串,因此此处不能调用该方法。

B、因为变量a是private,所以在其他类中不能访问a。

C、Second类能继承First类。

D、关键字final不能修饰类。

86、接口A的定义如下,指出下列哪些类实现了该接口?

()

  interfaceA{

   intmethod1(inti);

   intmethod2(intj);

  }

  A、classBimplementsA{

intmethod1(){}

   intmethod2(){}

   }

  B、classB{

    intmethod1(inti){

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1