java面向对象编程类的封装接口和基本类库练习题.docx

上传人:b****5 文档编号:6476437 上传时间:2023-01-06 格式:DOCX 页数:16 大小:21.94KB
下载 相关 举报
java面向对象编程类的封装接口和基本类库练习题.docx_第1页
第1页 / 共16页
java面向对象编程类的封装接口和基本类库练习题.docx_第2页
第2页 / 共16页
java面向对象编程类的封装接口和基本类库练习题.docx_第3页
第3页 / 共16页
java面向对象编程类的封装接口和基本类库练习题.docx_第4页
第4页 / 共16页
java面向对象编程类的封装接口和基本类库练习题.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

java面向对象编程类的封装接口和基本类库练习题.docx

《java面向对象编程类的封装接口和基本类库练习题.docx》由会员分享,可在线阅读,更多相关《java面向对象编程类的封装接口和基本类库练习题.docx(16页珍藏版)》请在冰豆网上搜索。

java面向对象编程类的封装接口和基本类库练习题.docx

java面向对象编程类的封装接口和基本类库练习题

面向对象编程基本知识练习

一、判断题

1.不需要定义类,就能创建对象。

()

2.构造方法用于给类的private实例变量赋值。

()

3.对象一经声明就可以立即使用。

()

4.在定义变量和方法时,必须清楚地在其面前标上访问权限修饰符。

()

5.Java程序中的参数传递都是把参数值传递给方法定义中的参数。

()

6.在类定义中,成员访问权限修饰符不能多次出现。

()

7.new操作符动态地为对象按其指定的类型分配内存,并返回该类型的一个引用。

()

8.类的方法通常设为public,而类的实例变量一般也设为public。

()

9.构造方法在创建对象时被调用。

()

10.通过点运算符与类对象的引用相连,可以访问此类的成员。

()

11.声明为protected的类成员只能被此类中的方法访问。

()

12.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间。

()

13.类的成员变量可以放在类体的任意位置。

()

14.声明为protected的类成员可以被此类作用域中的任何对象访问。

()

15.没有返回值的方法可以用void来表示,也可以不加。

()

二、选择题

1.下面对对象概念描述错误的是:

()

A操作是对象的动态属性

B任何对象都必须有继承性

C对象间的通讯靠消息传递

D对象是属性和方法的封装体

2.编译并运行下面的程序,运行结果为:

()

publicclassA

{

publicstaticvoidmain(String[]args)

{

Aa=newA();

a.method(8);

}

voidmethod(inti)

{

System.out.println(“int:

“+i);

}

voidmethod(longi)

{

System.out.println(“long:

“+i);

}

}

A程序可以编译运行,输出结果为int:

8

B程序可以编译运行,输出结果为long:

8

C程序有编译错误,因为两个method()方法必须定义为静态(static)的

D程序可以编译运行,但没有输出

3.下面关于类的说法不正确的是:

()

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

B类中不包含数据变量和方法

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

DJava语言的类只支持单继承

4.能作为类及其成员的修饰符是:

()

Ainterface

Bclass

Cprotected

Dpublic

5.设x、y均为已定义的类名,下列声明对象x1的语句不可能正确的是:

()

Apublicxxl=newy();

Bpublicyxl=newx();

Cxxl=newx();

Dxxl=x();

6.面向对象程序设计技术的特点是:

()

A可重用性

B可维护性

C表示方法的一致性

D可重用性、可维护性、表示方法的一致性

7.下列方法定义中,方法头不正确的是:

()

Apublicstaticx(doublea){…}

Bpublicstaticintx(doubley){…}

Cvoidx(doubled)

Dpublicintx(){…}

8.设已声明了一个类A的两个对象al、a2,为了初始化a1和a2,下面语句正确的是:

()

Aal=new();a2=new();

Bal=Anew();a2=Anew();

Cal,a2=newA();

Dal=newA();a2=newA();

9.构造方法何时被调用?

()

A类定义时

B使用对象的变量时

C调用对象方法时

D创建对象时

10.下列哪个类声明是正确的?

()

ApublicabstractclassCar{…}

Babstractprivatemove(){…}

Cprotectedprivatenumber;

DabstractfinalclassHl{…}

11.下列不属于面向对象程序设计的基本特征的是:

()

A抽象

B封装

C继承

D静态

12.请看下面的程序段

classPerson{

Stringname,department;

intage;

publicPerson(Stringn){name=n;}

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

publicPerson(Stringn,Stringd,inta){

//doingthesameastwoargumentsversionofconstructer

//includingassignmentname=n,age=a

}

}

下面那一选项可以添加到“//doingthesame……”处:

()

APerson(n,a)

Bthis(Person(n,a))

Cthis(n,a)

Dthis(name.age)

13.()是一个特殊的方法,用于对类的实例变量进行初始化。

A终止函数

B构造函数

C重载函数

D初始化函数

14.关于变量和它们范围的说法,正确的是:

()

A实例变量是类的成员变量

B实例变量要用关键字static来声明

C在一个方法执行时,定义在该方法的局部变量才被创建

D局部变量必须在它们使用前初始化

15.请看下面的程序段

classTest{

privateintm;

publicstaticvoidfun(){

//somecode…

}

}

方法fun()如何来访问变量m:

()

A将privateintm改成protectedintm

B将privateintm改成publicintm

C将privateintm改成staticintm

D将privateintm改成intm

16.在Java中,方法main()将返回一个()值。

AString

Bint

Cchar

Dvoid

17.有一个类A,对于其构造函数的声明正确的是()

AvoidA(intx){…}

BpublicA(intx){…}

CAA(intx){…}

DintA(intx){…}

18.请看下面的程序段

publicclassTest{

longa[]=newlong[10];

publicstaticvoidmain(Stringarg[]){

System.out.println(a[6]);

}

}

那一个选项是正确的:

()

A不输出任何内容

B输出0

C当编译时有错误出现

D当运行时有错误出现

19.关键字()表明一个对象或变量在初始化后不能修改。

Aextends

Bfinal

Cthis

Dfinalizer

20.声明为static的方法不能访问()类成员。

A超类

B子类

C非static

D用户自定义类

类的封装练习

一、判断题

1.在子类中可以用完全相同的signature重新定义一个超类方法,这称为方法的覆盖

(override)。

()

2.final修饰的方法是不能被子类覆盖的,只能被重载。

()

3.声明为final的类不能是超类。

()

4.当一个超类成员不适合该子类时,子类会以恰当的方式重新定义它。

()

5.对子类实例化对象需要调用超类的构造函数进行初始化工作,完成对子类中的超类实例变量的初始化,则子类可以继承超类的构造函数。

()

6.在类的定义中如果不明确给出超类,那么默认超类就是Object类。

()

7.protected类型的实例变量或方法只能由声明该变量或方法的类本身及其子类访问。

()

8.Java的每个子类的构造函数都要显式的调用它的直接超类的构造函数。

()

9.超类对象的集合通常比它的任何一个子类对象集合大。

()

10.子类可以从多个超类中派生出来。

()

二、选择题

1.为了区分重载多态中同名的不同方法,要求:

()

A参数名不同

B返回值类型不同

C采用不同的形式参数列表

D选项ABC都对

2.在某个类中定义一个方法:

voidGetSort(intx),以下关于能否作为这个方法的重载错

误的是:

()

AvoidGetSort(floatx){x*=x;}

BintGetSort(doubley){return(int)(2*y);}

CdoubleGetSort(intx,inty){returnx+y;}

D都不能

3.下列对继承的说法,哪个是正确的:

()

A子类只能继承父类public方法和状态

B子类能继承父类的非私有方法和状态

C子类能继承父类的所有方法和状态

D子类只能继承父类的方法,而不继承状态

4.定义类A如下:

classA

{inta,b,c;

publicvoidB(intx,inty,intz){a=x;b=y;c=z;}

}

下面对方法B()的重载哪些是正确的:

()

ApublicvoidA(intxl,intyl,intz1){a=x;b=y;c=z;}

BpublicvoidB(intx1,intyl,intz1){a=x;b=y;c=z;}

CpublicvoidB(intx,inty){a=x;b=y;c=0;}

DpublicB(intx,inty,intz){a=x;b=y;c=z;}

5.下列程序的结果输出为:

()

classStrange{

intj;

Strange(){

this(4);

}

Strange(intj){

this.j=j;

}

}

classMainStrange{

publicstaticvoidmain(string[]args){

Strangefunny=newStrange();

System.out.println(“j=“+funny.j);

}

}

Aj=2

Bj=4

Cj=6

Dj=7

6.下列说法正确的是:

()

AJava中允许一个子类有多个父类

B某个类是一个类的子类,它仍有可能成为另一个类的父类

C一个父类只能有一个子类

D继承关系最多不能超过4层

7.下列说法正确的是:

()

A子类只能覆盖父类的方法,而不能重载

B子类只能重载父类的方法,而不能覆盖

C子类不能定义和父类同名同形参的方法,否则,系统将不知道使用哪个方法。

D重载就是一个类中有多个同名但不同形参和方法体的方法

8.关于构造函数的说法正确的是:

()

A一个类只能有一个构造函数

B一个类可以有多个不同名的构造函数

C构造函数与类同名

D构造函数必须自己定义,不能使用父类的所有构造函数

9.下面是有关子类调用父类构造函数的描述正确的是:

()

A子类定义了自己的构造函数,就不会调用父类的构造函数

B子类必须通过super关键字调用父类有参数的构造函数

C如果子类的构造没有通过super调用父类构造函数,那么子类会先调用子类自己的构造函数,再调用父类不含参数的构造函数。

D创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数

10.构造方法何时被调用?

()

A类定义时

B使用对象的变量时

C调用对象方法时

D创建对象时

11.如果超类不允许其通过继承的方式产生的子类访问它的某些成员,那么它必须以什么方

式声明该成员。

()

Apublic

Bprivate

Crotected

Dstatic

12.声明为final的变量不能在子类中覆盖,声明为()和()的方法是隐式的final。

()

Apublicprivate

Bprivateprotected

Cprotectedstatic

Dstaticprivate

13.继承性使▁▁成为可能,它不仅节省开发时间,而且也鼓励人们使用已经验证无误和调

试过的高质量软件。

()

A节省时间

B软件复用

C软件管理

D延长软件生命周期

14.编译运行下面的程序,结果是()。

PublicclassA

{

publicstaticvoidmain(String[]args)

{

Bb=newB();

b.test();

}

voidtest()

{

System.out.print(“A”);

}

}

classBextendsA

{

27voidtest()

{

super.test();

System.out.println(“B”);

}

}

A产生编译错误

B代码可以编译运行,并输出结果:

AB

C代码可以编译运行,但没有输出

D编译没有错误,但会产生运行时异常

15.已知类关系如下:

classEmployee;

classManagerextendsEmployeer;

classDirectorextendsEmployee;

则以下语句正确的是:

()

AEmployeee=newManager();

BDirectord=newManager();

CDirectord=newEmployee();

DManagerm=newDirector();

16.一个▁▁类的对象可以当作相应的▁▁类对象看待。

()

A子系统

B用户系统

C子超

D超用户

17.哪个方法是对如下方法的重载?

()

publicvoidexample(){...}

Apublicvoidexample(intm){...}

Bpublicintexample(){...}

Cpublicvoidexample2(){...}

Dpublicintexample(intm,floatf){...}

18、被声明为private,protected及public的类成员,在类外部:

()

A只能访问到声明为public的成员

B只可能访问到声明为protected和public的成员

C都可以访问

D都不能访问

19、现有两个类A、B,以下描述中表示B继承自A的是()

AclassAextendsB

BclassBimplementsA

28CclassAimplements

DclassBextendsA

20、设类B是类C的父类,下列声明对象x1的语句中不正确的是()

ACx1=newB();

BBx1=newC();

CCx1=newC();

DBxl=newB();

三、简述题

1.方法的重载和覆盖有什么区别?

2.简述超类和子类的关系。

3.在方法体中可以使用this和super关键字,其意义是什么,在什么情况下使用?

4.试分清“是一个”关系和“有一个”关系。

5.调用构造方法遵循什么规则?

6.要使一个类的多个对象具有不同的初始状态,应如何实现?

接口和基本类库练习题

一、判断题

1.Java中的类和接口都只支持单重继承。

()

2.由于Java中类只支持单重继承,所以一个类只能继承一个抽象类和实现一个接口。

()

3.内部类始终可以访问外部类。

()

4.对于一个抽象类,改变它的属性和方法一定会改变它所有子类的属性和方法。

()

5.一个类可以实现抽象类的所有方法,也可以只实现部分方法,但实现部分方法的类仍然是一个抽象类。

()

6.在实现接口的时候,要实现所有方法。

()

7.接口其实是一个特殊的abstractclass。

()

8.一个接口不可以继承其他接口。

()

二、选择题

1.下面有关接口的说法,哪个是正确的?

()

A接口与抽象类是相同的概念

B一个类不可实现多个接口

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

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

2、在使用interface声明一个接口时,可以使用()修饰符修饰该接口。

Aprivate

Bprotected

Cprivateorprotected

Dpublic

3.下列哪个不是属于接口用途的?

()

A通过接口可以实现不相关类的相同行为

B通过接口可以指明多个类需要实现的方法

C通过接口可以了解对象的交互界面

D通过接口可以了解对象所对应的类

5.虽然接口和抽象类不能创建对象,但它们的对象引用仍可指向该类型的对象。

这种说法

()

A正确

B不正确

C不能确定

D接口和抽象类不能说明其对象引用

6.下面哪个类包括drawImage()方法、drawString()方法和setColor()方法。

()

Ajava.awt.Applet

Bjava.awt.Image

Cjava.awt.Graphics

Djava.util.Date

7.接口中说明了一组公共的抽象方法,其中是否包含公共的静态方法?

答案是()

A可以

B不可以

C不能肯定

D因静态方法不能被改写,故不能出现在接口中

8.接口是Java面向对象的实现机制之一,以下说法正确的是:

()

AJava支持多重继承,一个类可以实现多个接口

BJava只支持单重继承,一个类可以实现多个接口

CJava只支持单重继承,一个类只可以实现一个接口

DJava支持多重继承,但一个类只可以实现一个接口

9.关于接口的定义和实现,以下描述正确的是:

()

A接口定义中的方法都只有定义没有实现

B接口定义中的变量都必须写明final和static

C如果一个接口由多个类来实现,则这些类在实现该接口中的方法时应采用统一的代码

D如果一个类实现一个接口,则必须实现该接口中的所有方法,但方法未必声明为public

11.声明接口的保留字是()

Ainterface

Bprotect

Cfinal

Dstatic

13.下面的接口(类)定义正确的是:

()

A

publicclassA

{

privateintx;

publicgetx()

{returnx;}

}

B

publicabstractclassA

32{

privateintx;

publicabstractintgetx();

publicintamethod()

{return0;}

}

C

publicclassA

{

privateintx;

publicabstractintgetx();

}

D

publicinterfaceInterfacea

{

privateintx;

publicintgetx()

{returnx;}

}

14.接口具有下面的特性。

()

A多重继承

B不可继承

C抽象性

D嵌套

15.定义一个包的关键字是()。

Aimport

Bpackage

Cinterface

Dprotected

16.下列选项中,用于在程序开头引入包的关键字是()。

Aimport

Bimplements

Cinteger

Dprotected

17.以下语句输出的结果是()。

System.out.println(Math.floor(-0.8));

A0

B-1

33C-0.8

D0.8

18.下面的程序段执行后,变量a、b、c的值分别是()。

inta,b,c;

a=(int)Math.round(-4.51);

b=(int)Math.ceil(-4.51);

c=(int)Math.floor(-4.1);

A-5,-4,-5

B-4,-4,-5

C-5,-5,-5

D-4,-4,-4

19.下面()说法不正确。

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

B如果源文件包含import语句,则该语句必须是除空行和注释行外的第一个语句行

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

D接口中的方法不一定是抽象方法,所以可以不用关键字abstract修饰

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

当前位置:首页 > 工程科技 > 能源化工

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

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