文档库 最新最全的文档下载
当前位置:文档库 › 北方工业大学 面向对象复习资料 考研题

北方工业大学 面向对象复习资料 考研题

北方工业大学 面向对象复习资料 考研题
北方工业大学 面向对象复习资料 考研题

1. 面向对象方法有哪些特点?

( 1.)抽象:

抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象

(2).继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

(3).封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象

(4). 多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

(5)灵活性:对象的功能执行是在接到消息是确定的,使得对象可以根据自身的特点进行功能实现.

(6)易维护性:对象实现抽象和封装后,使可能出现的错误基本限制在自身内部,易于检错和修改.

(7)增量性设计:面向对象系统可以提供继承机制不断扩充功能,而不影响原有软件的运行.

(8)局部存储与分布处理:每个对象通过数据抽象和数据隐蔽将其内容和状态置于自身独立的存储结构里。对象的处理是自治的,由对象构成的系统处理是分布式的

(9)代码共享:继承性提供了一种代码共享的手段,可以避免代码的重复设计.

2. 面向对象程序设计与大型程序设计有哪些关系?

答:大型程序是根据待解决问题的复杂度来判定。a大型程序必须由多人合作完成,因此进行大型程序设计的管理具有复杂性b大型程序有大量的系统状态,这对测试系统的正确性带来极大的困难. 大型程序的实现要求:a正确性;b易维护性;c可读性;d可重用性

模块分解:a基于功能的模块分解(横向)。依据流程图,以数据为模块的界面.b基于数据抽象的模块分解(纵向)。依据信息隐蔽,用数据上的操作为界面

软件系统设计=大型程序设计+小型系统设计

前者解决模块界面复杂,后者控制模块内部的复杂

面向对象的设计方法

软件系统设计=面向对象设计+面向对象程序设计

3. 有哪些面向对象语言?

答案:SmallTalk,Alan Kay,1972年。SmallTalk-72,SmallTalk-74,SmallTalk-78, SmallTalk-80(强调了对象概念的统一,引入类、方法、实例等概念和术语,应用了单继承和动态连接)。C++,AT&T,Bjarne Stroustrup对C语言进行改进扩充。

Object-C,康涅迪格大学的Brad J. Cox在C语言基础上加SmallTalk-80的框架建成– Eiffel,Interactive Software Inc.的Bertrand Meyer设计– Ctalk,C+Smalltalk

POOL,阿姆斯特丹大学的America主持开发– Fooplog,对象、函数式、逻辑式三者结合– ADA

Java,Sun公司,90年代中期

4. 面向对象设计方法与其它设计方法的比较?

答案:(1)横向比较:a函数程序设计将计算过程看作函数作用过程;b逻辑程序设计将计算过程看作推演过程;c面向对象程序设计将计算过程看作分类加状态变换的过程

(2)纵向比较a和结构化程序设计比较。结构化程序设计强调功能抽象和模块性,将解决问题的过程看作是一个处理过程;而面向对象程序设计综合了功能抽象和数据抽象,将解决问题的过程看作是一个分类演绎过程。a模块与对象:b过程调用与消息传递:c类型与类:d 静态连接与动态连接结构化程序设计特点:

优点:与非结构化程序相比,结构化程序在调试、可读性和可维护性等方面都有很大的改进。缺点:代码重用性不高:以过程为中心设计新系统,除了一些标准函数,大部分代码都必须重新编写。

由于软、硬件技术的不断发展和用户需求的变化,按照功能划分设计的系统模块容易发生变化,使得开发出来的模块的可维护性欠佳。

面向过程模式将数据与过程分离,若对某一数据结构做了修改,所有处理数据的过程都必须重新修订,这样就增加了很多的编程工作量。

面向对象的优点:

而面向对象围绕现实世界的概念来组织模块,采用对象描述问题空间的实体,用程序代码模拟现实世界中的对象,使程序设计过程更自然、更直观。

面向过程是以功能为中心来描述系统,而面向对象是以数据为中心来描述系统。相对于功能

而言,数据具有更强的稳定性。

面向对象模拟了对象之间的通信。就象人们之间互通信息一样,对象之间也可以通过消息进行通信。这样,我们不必知道一个对象是怎样实现其行为的,只需通过对象提供的接口进行通信并使用对象所具有的行为功能。而面向过程则通过函数参数和全局变量达到各过程模块联系的目的。

面向对象把一个复杂的问题分解成多个能够完成独立功能的对象(类),然后把这些对象组合起来去完成这个复杂的问题。采用面向对象模式就象在流水线上工作,我们最终只需将多个零部件(已设计好的对象)按照一定关系组合成一个完整的系统。这样使得软件开发更有效率。

5. 解释以下概念:

对象;消息;封装;协议;类;继承;

对象:对象就是我们认识世界的基本单元,它可以是人,也可以是物,还可以是一件事。整个世界就是形形色色的对象组成。程序=对象+消息

消息:消息是指一个对象要求另一个对象执行某个功能操作的规格的说明,通过消息传递才能完成对象之间的相互请求或相互协作。

封装:封装是隐藏了抽象的内部实现细节的结果。封装是将数据抽象的外部接口与内部的实现细节清楚地分离开。

协议:由一个对象能够接受并且愿意接受的所有消息构成的对外接口。其它对象只能向该对象发协议中所提供的消息。

类:类是对一组具有共同的属性特征和行为特征的对象的抽象。面向对象中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是是说,类是对具有相同数据结构和相同操作的一类对象的描述。类和对象是抽象和具体的关系,类是对多个对象进行综合抽象的结果,对象又是类的个体实物,一个对象是类的一个实例。

继承:是一种现实世界对象之间独特的关系,它使得某类对象可以继承另外一类对象的特征和能力。也就是说一类(派生类、子类)对象具有另一类(基类、父类)对象的性质(数据和操作)。在面向对象中,继承所表达的是对象类之间相关的关系,这种关系使得某类对象可以继承另外一类对象的特征和能力。

6. 什么是实例?类于实例的关系是什么?

答案:任何单个对象都是某个类的实例。一个类的所有实例都采用同样的方法处理消息,但每个实例又有自己的私有存储单元。

类和实例的关系:抽象和具体的关系.a类的所有实例能响应的消息模式相同,且采用同样的

方法完成消息所要求的操作b类的所有实例具有相同的数据结构,且采用相同的名字来引用实例是类的具体化,类是某些有相同点事物的统括类和对象是抽象和具体的关系,类是对多个对象进行综合抽象的结果,对象又是类的个体实物,一个对象是类的一个实例

7. 什么是继承?分为哪几种?

在面向对象中,继承所表达的是对象类之间相关的关系,这种关系使得某类对象可以继承另外一类对象的特征和能力。按继承源上分:

继承分为:单继承:指每个派生类只直接继承了一个基类的特征

多继承:指多个基类派生出一个派生类的继承关系,多继承的派生类直接继承了不止一个基类的特征。

按继承内容上分:取代继承,包含继承,受限继承,特化继承

8. 继承方式:public,proteced,private

(1)public(公有继承):继承时保持基类中各成员属性不变,并且基类中private成员被隐藏。派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象只能访问基类中的public成员。

(2)private(私有继承):继承时基类中各成员属性均变为private,并且基类中private成员被隐藏。派生类的成员也只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何的成员。

(3)protected(保护性继承):继承时基类中各成员属性均变为protected,并且基类中private 成员被隐藏。派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何的成员。

9. 对象间的关系有哪几种?

对象间的创建关系:也是一种委托关系的具体实现

对象间的聚合关系(包含关系)

对象通讯关系:消息流图描述系统中对象间的消息流

实例化关系:对象是一个类的实例,类是对象的抽象模板

10. 解释以下概念:

多态;作用域;语景;深拷贝;浅拷贝

多态:多态,意味着一个对象有着多重特征,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。多态即一名多用,也即同一消息可以根据发送消息对象的不同采用多种不同的行为方式。

作用域:通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强程序的可靠性,减少名字冲突

语景:作用域是针对语言中的一个符号(如变量)或一个程序段(如函数)的可访问性而言的;深拷贝:不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的;深拷贝是得到一个对象的副本的操作;

浅拷贝:只复制对象的基本类型,对象类型,仍属于原来的引用;浅拷贝是得到一个对象的指针的操作

11. 强类型与弱类型的区别在哪?它们的代表语言?

强类型与弱类型的区别:

强类型,意味着必须事先声明变量,并且该变量只可用于表示一种类型的数据(例如或者一个

整数或者一个字符串)。弱类型,即一个变量不必声明其类型,一个被用于表示字符串的变量在后面的程序中也可用来表示数字;

代表语言:C ,c#,java是强类型语言,VBScript,PHP弱类型语言。

12. 面向对象分析的任务是什么?面向对象分析的基础是什么?

面向对象的任务是:了解问题域内的相关对象及对象间的关系和作用,然后构成问题域的对象模型,尽量使模型真实反映处所要解决问题的实质

面向对象的基础是:模拟技术和面向对象技术,从模拟技术中吸取了属性、关系等对象概念,从面向对象技术中吸取了封装、分类结构等概念。a在分析和说明整体框架中贯穿结构化方法,如对象和属性,整体和部分,类和成员等.b用消息进行用户和系统之间、系统中对象之间的通讯制和协议称为部件对象模型

13. 面向对象分析和设计方法有哪些,其优势是什么?

面向对象设计:基于四个重要的软件设计功能--抽象、信息隐蔽、功能独立性和模块性来建造系统。必须找到适当的对象、定义类接口和继承层次并建立它们间的关系。设计主要针对当前的问题,但也应有足够的通用化适应将来的问题。尽量避免重复设计。

? OOA方法以及OOD方法:

–Booch方法包含“微开发过程”和“宏开发过程”

–Jocobson方法也称为OOSE,该方法特别强调使用实例

–Rambaugh方法包含用于分析、系统设计和对象级设计的OMT

–Coad和Yourdon方法是最容易学习的方法之一,建模符号相当简单

? 优势:集中相关数据和功能来直接模拟问题世界中的对象,并且开发的各个阶段都

围绕对象范型进行。

14. 解释以下概念:

OLE;ActiveX;COM;GUID

OLE: Object Linking and Embedding,对象连接与嵌入,简称OLE技术。OLE 不仅是桌面应用程序集成,而且还定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制,这种连接机制和协议称为部件对象模型。

ActiveX: . 是组件(或对象)打包,别人编程功能. 以便可以重用Web页或其他程序中插入。由一组开发和实现Internet网上应用程序的技术或部件构成,ActiveX的核心技术也是OLE。它是OLE技术在Internet网上的一个扩展是组件(或对象)打包,别人编程功能. 以便可以重用Web页或其他程序中插入。

COM: COM是Component Object Model (组件对象模型)的缩写。COM组件是以WIN32动态链接库(DLL)或可执行文件(EXE)形式发布的可执行代码组。是一个定义组件的标准,它在最基本的层次定义组件是什么,如何识别它们,如何定位它们,如何装入它们,如何访问它们以及如何与它们通信。

GUID:Globally Unique Identifier(全球唯一标识符)GUID(全球唯一标识)是微软使用的一个术语,由一个特定的算法,给某一个实体,如Word文档,创建一个唯一的标识,GUID 值就是这个唯一的标识码。GUID广泛应用于微软的产品中,用于识别接口、复制品、记录以及其他对象。不同类型的对象对应不同的GUID值。例如,一个微软Access数据库使用的是16字节域为复制品创建一个唯一标识。

15. 什么是设计模式? 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

16. Singleton

单例模式,就是只有一个实例,作为对象的创建模式,单例模式确保某一个类只有一个实例,

而且自行实例化并向整个系统提供这个实例。这个类称为单例类。显然单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。在下面的对象图中,有一个"单例对象",而"客户甲"、"客户乙" 和"客户丙"是单例对象的三个客户对象。可以看到,所有的客户对象共享一个单例对象。而且从单例对象到自身的连接线可以看出,单例对象持有对自己的引用。(1)1995年Gamma等提出(2)独特之处:描述十分简单,实现却很复杂(3)描述:保证一个class只有一个instance (实体),并为它提供一个全局访问点(4)用途:当你模塑(model)一些“从概念上来说,在程序中只有唯一实体”的型别,如键盘、显示器、打印管理器等(5)Singleton不存在所谓“最佳”实现方案,只能根据要解决的具体问题来选择合适的实现

Singleton(单子,对象创建型模式):保证一个类仅有一个实例,并提供一个访问它的全局访问点。public class Singleton {

private Singleton(){}

//在自己内部定义自己一个实例,是不是很奇怪?

//注意这是private 只供内部调用

private static Singleton instance = new Singleton();

//这里提供了一个供外部访问本class的静态方法,可以直接访问

public static Singleton getInstance() {

return instance;

}

}

第二种形式: public class Singleton {

}

private static Singleton instance = null; public static synchronized Singleton getInstance() { if (instance==null) instance=new Singleton(); return instance; }

17. 函数重载和覆盖,它们的比较

所谓函数重载是指同一个函数名可以对应着多个函数的实现,可以给函数名add()定义多个函数实现,该函数的功能是求和,即求两个操作数的和。其中,一个函数实现是求两个int 型数之和,另一个实现是求两个浮点型数之和,再一个实现是求两个复数的和。每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型不同。这就是函数重载的概

念。函数重载在类和对象的应用尤其重要。

函数的覆盖:覆盖是指派生类中存在重新定义的函数,其函数名、参数列、返回值类型必须同父类中的相对应被覆盖的函数严格一致,覆盖函数和被覆盖函数只有函数体(花括号中的部分)不同,当派生类对象调用子类中该同名函数时会自动调用子类中的覆盖版本,而不是父类中的被覆盖函数版本,这种机制就叫做覆盖。

区别:下面我们从成员函数的角度来讲述重载和覆盖的区别。

成员函数被重载的特征有:

1) 相同的范围(在同一个类中);

2) 函数名字相同;

3) 参数不同;

4) virtual关键字可有可无。

覆盖的特征有:

1) 不同的范围(分别位于派生类与基类);

2) 函数名字相同;

3) 参数相同;

4) 基类函数必须有virtual关键字。

重载是在相同名字空间作用域下,而覆盖则是在不同的名字空间作用域下,

18. 友元,运算符重载

友元是一种定义在类外部的普通函数,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。

友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元,运算符重载:所谓运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型

友元函数:一个被赋予访问一个类非public成员权限的非成员函数,它在没有打破封装情况下改善接口。在运算符重载时比较有用(特别时两变元运算符)。

重载运算符的名字:只有C++预定义的运算符集中的运算符才能重载。但有几个特例,而且对于内部类型的操作符它们的意义不能改变。

不能重载的运算符:. 、.* 、?: 、:: 、sizeof 、typeid

重载运算符的设计:当类设计者定义好了公有接口后,就可以考虑每个操作和运算符之间是否有逻辑关系。如isEmpty 可变为operator!()

copy可变为operator=()

isEqual 可变为operator==() ??

重载运算符使用成员函数/友元函数的选择

19. 名字空间、异常的基本概念

名字空间:就是一个限定符号使用的区域,如果做了好几个同样名字的类,就放在不同的namespace

异常:异常是一种程序定义的错误,它对程序的逻辑错误进行设防,对运行异常加以控制。C++中,异常是对所能预料的运行错误进行处理的一套实现机制。

20. C++: 初始化列表,大三法则,合适继承,公有继承的含义接口继承,实现继承,模

板…

初始化列表:顾名思义,就是用来初始化成员变量的。

因为有些变量必须在构造函数执行之前初始化,比如父类的构造函数中需要的参数,所以就需要一个初始化成员列表用来在构造函数执行前初始化那些必须提前初始化做法。

三大法则:如果一个类需要一个析构函数,或者一个拷贝构造函数,或者一个赋值运算符,那么它就三个都需要。

合适继承:当派生类的成员函数说明和积累中对性的成员函数相比,前者相对后者要求不多并且承诺不少是,我们就可以得到合适的继承和可替代行为。合适继承课提供充分的可替代性和可扩充性。合适继承和自己以及专门化(specilize)没有必然联系。

公有继承:意味着“is a kind-of”的关系,简称isa。Class D:public B,这就是告诉大家每个类型为D的对象也是一个类型为B的对象,繁殖不亦然。也就是说“B对象排的上用场的任何地方,D对象也可以派上用场”。

接口继承:派生类对象继承基类中的方法定义,而对象本身实现这些方法。在COM中,继

承指的是接口继承。

实现继承:派生类对象直接继承基类中的函数的实现。

模版:模版是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码可重用性,使用模版可以大幅度地提高程序设计的效率

抽象基类:有时基类只表达一些抽象的概念,在这种基类定义的某些函数没有实际的意义,但它又要为其派生类提供一个公共接口,我们可以把这些函数声明为纯虚函数。而这种基类称为抽象基类。

面向对象方法题库1-1-9

面向对象方法题库1- 1-9

问题: [单选]用例(usecase)用来描述系统对事件做出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系筑”中,创建新订单和更新订单都需要核查用户账号是否正确。用例“创建新订单”、“更新订单”与用例“核查客户账号”之间是()关系。 A.包含(includE. B.扩展(extenD. C.分类(classification) D.聚集(aggregation) 用例是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果。它确定了一个和系统参与者进行交互,并可由系统执行的动作序列。用例模型描述的是外部执行者(actor)所理解的系统功能。用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。 两个用例之间的关系主要有两种情况:一种是用于重用的包含关系,用构造型include表示;另一种是用于分离出不同行为的扩展,用构造型extend表示。 ①包含关系:当可以从两个或两个以上的原始用例中提取公共行为,或者发现能够使用一个构件来实现某一个用例的部分功能是很重要的事时,应该使用包含关系来表示它们。 ②扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事

情,可以断定将这个用例分为一个主用例和一个或多个辅用例描述可能更加清晰。

问题: [单选]对于违反里氏替换原则的两个类A和B,可以采用的候选解决方案是() A.尽量将一些需要扩展的类或者存在变化的类设计为抽象类或者接口,并将其作为基类,在程序中尽量使用基类对象进行编程 B.创建一个新的抽象类C,作为两个具体类的超类,将A和B共同的行为移动到C中,从而解决A和B 行为不完全一致的问题 C.将B到A的继承关系改成组合关系 D.区分是Is-a还是Has-a。如果是Is-a,可以使用继承关系,如果是Has-a,应该改成组合或聚合关系 里氏替换原则是面向对象设计原则之一,由BarbaraLiskov提出,其基本思想是,一个软件实体如果使用的是一个基类对象,那么一定适用于其子类对象,而且觉察不出基类对象和子类对象的区别,即把基类都替换成它的子类,程序的行为没有变化。反过来则不一定成立,如果一个软件实体使用的是一个子类对象,那么它不一定适用于基类对象。 在运用里氏替换原则时,尽量将一些需要扩展的类或者存在变化的类设计为抽象类或者接口,并将其作为基类,在程序中尽量使用基类对象进行编程。由于子类继承基类并实现其中的方法,程序运行时,子类对象可以替换基类对象,如果需要对类的行为进行修改,可以扩展基类,增加新的子类,而无须修改调用该基类对象的代码。

面向对象技术Java 期末复习试卷(三)

期末复习试卷(三) 一、单项选择题 1、有一段java应用程序,其中包含一个公共类,名字为TestStudent,那么保存它的源 文件名是() A. teststudent.java B. teststudent .class C. TestStudent.java D. TestStudent.class 正确答案:C 解析:一个java文件中可以包含多个类,但最多只能有一个类是公共类(public),该java文件的名字要与公共类的一致。 2、关于下面的代码,哪个描述是正确的? public class Test{ public static void main(String[] args){ Integer n1 = new Integer(3); Object n2 = new Integer(4); System.out.println(https://www.wendangku.net/doc/359190744.html,pareTo(n2)); } } A. 可以编译通过,可以运行,并得到预期结果。 B. 可以编译通过,可以运行,但不能得到预期结果。 C. 可以编译通过,但又运行错误。 D. 有编译错误。 正确答案:D 解析:Integer类是基本数据类型int的包装类,里面封装了一个int类型的值,

提供了一些实用的方法(例如:在JavaFX中读取文本框内容是String类型的,如果要转换成int类型,就要调用Integer类的parseInt()方法)并实现了Comparable接口,在Comparable接口中定了抽象方法compareTo(T o), T是泛型,对于Integer类,T 被替换为Integer,如下图: 因此,Integer类中compareTo()方法的定义如下: 因此,compareTo的参数只能是Integer类型的,所以代码中的下面语句中的n2的类型需要进行强制类型转换,由Object转为Integer: System.out.println(https://www.wendangku.net/doc/359190744.html,pareTo(n2)); 正确写法如下: System.out.println(https://www.wendangku.net/doc/359190744.html,pareTo((Integer) n2)); 类似的包装类还有Long\Float\Double\Char\Boolean等,都是将基本数据类型包装为类。 3、下面哪种类型不是引用数据类型?() A. 数组 B. char C. String D. Object 正确答案:B 解析:基本数据类型只是存放数据,不提供功能(即方法)包括4类八种: 布尔类型:boolean

面向对象试题(答案)

CoreJavaOOP考试题 考试时间:90分钟 考试总分:100分 一、选择题(不定项选择)(22*4=88) 1. 类A,B的定义如下: class A { private int a = 100; A() { System.out.print("A()"); System.out.println(a); } } class B extends A { private int a = 200; B() { System.out.print("B()"); System.out.println(a); } } 运行下面的代码: new B(); 输出的结果是:(A )。 A. A() 100 B() 200 B. A() 200 B() 200 C. B() 200 A() 100 D. B() 200 A() 200

2.下列说法正确的是(D ) A.所有类都必须定义构造方法(构造器) B.构造方法必须初始化类的所有数据成员 C.子类定义了构造器后,不再调用父类的构造器 D.构造方法可以访问类的非静态成员 3.在Java中,哪个关键字使类不能派生子类?, (A ) A : final B : public C : private D : native 4.class Base{ static void test(){ System.out.println(“Base.test()”); } } public class Child extends Base{ static void test(){ System.out.println(“Child.test()”); } public static void main(String[] args){ Base base = new Child(); Child child = new Child(); base.test(); child.test(); } } 程序运行的结果是( C ) A.Child.test() Child.test() B.Child.test() Base.test() C.Base.test() Child.test() D.Base.test() Base.test()

C++面向对象程序设计期末考试试题

《C++面向对象程序设计》考试试题 本试卷满分100分; 请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰; 请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸一并交上来。 一、单选题(共10分,每题1分) 1. C++中解决命名冲突的机制是:D (A) 虚基类(B) 虚函数(C) 函数重载(D) 名字空间 2. 若类A的一个对象所占的内存空间中包含虚函数表的入口地址,则: C (A) 类A不能有静态数据成员(B) 类A中公有的成员函数一定是虚的 (C) 类A中至少有一个成员函数是虚的(D) 类A的析构函数一定是虚的 3.任意一个类,析构函数的个数最多是:B (A) 不限个数(B) 1 (C) 2 (D) 3 4.下列关于this指针的说法,哪个是正确的: D 5.(A) this指针一定指向常量型数据(B) this指向的数据不可更改 (C) 静态成员函数中也可以访问this指针(D) this指针本身可直接作为成员函数的返回值5.在类定义中,为说明成员的访问权限,private, protected, public 可以出现次数为:A (A)次数没有具体限定(B) 每种至多一次 (C) public至少一次(D) 每种至少一次 6.下面哪种定义方式是正确的,并且使得p可以作为函数void f( A* const pp);的实参:A (A) A * p = new A; (B) A a; A* p = a; (C)const A* p = new A; (D) A a; const A* p = a; 7.obj是类A的一个对象,执行语句const A& aA= obj; ,则下列说法正确的是:C (A)类A的拷贝构造函数会被调用(B)类A的赋值函数会被调用 (C)&aA的值就是&obj (D) 语句( );等价于语句( ); 8.下面关于访问类A的私有数据成员的说法,错误的是:C (A)类A的友元函数可以访问类A的私有成员。 (B)类A的友元类中的非静态成员函数可以访问类A的私有成员。 (C)类A的嵌套类中的非静态成员函数可以访问类A的私有成员。 (D)类A中的非静态成员函数可以访问类A的私有成员。 9.类A中有唯一的一个成员函数f,且f是公有的静态或非静态成员函数,对于类A的一 个对象a,执行语句(100);成功,那么f 的函数原型不可以是:B (A)A& f( int, int=50 ); (B) void f(int& ) ; (C) const A * f(const int ); (D) A f( const int&); 10. 下面关于类的成员函数描述不正确的是:A (A) 静态成员函数内可以直接访问类的非静态成员数据 (B) 静态成员函数内可以直接访问类的静态成员数据

2_面向对象基础测试题和答案

面向对象部分测试题 1.下面描述函数重写错误的是C A. 要有子类继承或实现 B. 子类方法的权限必须大于等于父类的权限 C. 父类中被private权限修饰的方法可以被子类重写 D. 子类重写接口中的抽象方法,子类的方法权限必须是public的 2.关于封装下面介绍错误的是(D )。 A. 封装将变化隔离 B. 封装提高重用性。 C. 封装安全性 D. 只有被private修饰才叫做封装 3.试图编译运行下面的代码会发生什么情况D public class MyClass{ static int i; public static void main(String[] args){ } } A. 错误,变量i没有被初始化 B. 输出null C. 输出1 D. 输出0 4.在Java中,下面对于构造函数的描述正确的是( D)。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void

C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数 5.下面Java代码的运行结果是( C )。 class Penguin { private String name=null; 企鹅的名字是null,健康值是10,性别是雄。 B. 执行构造方法。 企鹅的名字是null,健康值是0,性别是null。 C. 企鹅的名字是null,健康值是0,性别是null。 D. 执行构造方法。 企鹅的名字是null,健康值是10,性别是雄。 6.class A { public int i = 10; } class B extends A{ public int i = 20; } public class Test{ public static void main(String args[]){ B b = new B(); A a = b; } }输出为多少 ( C) 10

面向对象技术(本)阶段练习四资料

《面向对象技术(本)》课程第四阶段练习题 、填充题 1超类的private成员不能被子类继承。 2.在声明一个类变量时,前面必须要加上static修饰符。 3. import java.util.*;语句可导入Java的实用包中所有的类。 4.方法的覆盖是后期绑定,方法的重载是前期绑定。 5.写出一个表达式:输出角度300的余弦值Math.cos(30*3.14/I80。 二、选择题 旦1.找出有关类的正确说法。 a. 类具有封装性,所以类的数据是不能被访问的。 b. 类具有封装性,但可以通过类的公共接口访问类 中的数据。 c. 声明一个类时,必须用Public修饰符。 d. 每个类中,必须有main方法,否则程序无法运 行。 e. A 2.将类的成员的访问权限设置为默认的,则该成员能被 a. 同一包中的类访问 b. 其它包中的类访问 c. 所有的类访问 d. 所有的类的子类访问

C 3.下面哪一种是正确的方法重栽 a. int fun (i nt afloat b{} float fun (i nt a,float b{} b. float fun (i nt a,float b{} float fun (i nt x,float y{} c. float fun( float a{} float fun (float a,float b{} d. flaot fun 1(i nt a,float b{} float fun 2(i nt a,float b{} D 4.下面关于继承的说法那个是正确的 a. 超类的对象就是子类的对象。 b. 一个类可以有几个超类。 c. 一个类只能有一个子类。 d. 一个类只能有一个超类。 C 5.下面关于多态性的说法那个是正确的 a. 一个类中,不能有同名的方法。 b. 子类中不能有和父类中同名的方法。 c. 子类中可以有和父类中同名且参数相同的方法。 d. 多态性就是方法的名字可以一样,但返回的类型必须不一样。 三、简答题 1. 什么是类,什么是对象? 在面向对象的程序设计语言中,类是一种特殊属性类型,类可以看作具有共同属性和行为的

java面向对象试卷及答案

java面向对象程序设计 系班级姓名成绩得分评卷人 一、填空题(每空2分,共20分) 1.Java源程序的扩展名是,经过编译后的程序的扩展名是。2.Socket通常也称为,用于描述和。3.线程的优先级在至之间,数值越大 4.构造方法是一种特殊的成员方法,构造方法名与相同 5.Java语言只允许单继承,指每个类只能有一个。 二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的() A、继承 B、流程控制 C、抽象 D、封装 2.以下关于执行Java小程序的论述错误的是:() A、可以通过浏览器调用嵌入了Java小程序的HTML文档 B、可以通过appletviewer.exe调用嵌入了Java小程序的HTML文档 C、可以通过java.exe调用嵌入了Java小程序的HTML文档 D、可以在Java集成开发环境中调用嵌入了Java小程序HTML文档 3.符合对象和类关系的是:() A、人和老虎 B、书和汽车 C、楼和土地 D、松树和植物 4.关于选择结构下列哪个说法正确?() A.if语句和else语句必须成对出现 B.if语句可以没有else语句对应 C.一个if语句只能有一个else if语句与之对应 D.else if结构中必须有default语句 5.while循环和do…while循环的区别是:()

A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.do…while循环执行次数可能为0 D.while循环执行次数可能为0 6.关于for循环和while循环的说法哪个正确?() A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空 7.下列修饰符中与访问控制无关的是() A.private B.public C.protected D.final 8.方法内的形参:() A.必须定义多个形参B.可以没有 C.至少有一个D.只能是简单变量 9.throws的作用:() A.表示方法可能会抛出例外 B.表示后面是方法的输出量 C.方法的标志,每个方法都必须有 D.没有意义 10.在Java语言中,整型常量123占用的存储字节数是:()A.1B.2 C.4 D.8 11.关于对象成员占用内存的说法哪个正确?() A.同一个类的对象共用同一段内存 B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存 D.以上都不对 12.return语句:()

面向对象面试题

面向对象面试题 1、什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能,而不是像C那样分成一个个函数; 现在纯正的OO语言主要是java和C#,C++也支持OO,C是面向过程的。 2、简述private、protected、public、internal 修饰符的访问权限。 private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 当前程序集内可以访问。 3、https://www.wendangku.net/doc/359190744.html,中的五个主要对象 Connection:主要是开启程序和数据库之间的连结。没有利用连结对象将数据库打开,是无法从数据库中取得数据的。这个物件在https://www.wendangku.net/doc/359190744.html, 的最底层,我们可以自己产生这个对象,或是由其它的对象自动产生。 Command:主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及呼叫存在数据库中的预存程序等。这个对象是架构在Connection 对象上,也就是Command 对象是透过连结到数据源。 DataAdapter:主要是在数据源以及DataSet 之间执行数据传输的工作,它可以透过Comm and 对象下达命令后,并将取得的数据放入DataSet 对象中。这个对象是架构在Command 对象上,并提供了许多配合DataSet 使用的功能。 DataSet:这个对象可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来。DataSet 的能力不只是可以储存多个Table 而已,还可以透过DataAdapter对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。DataSet 对象可以说是https://www.wendangku.net/doc/359190744.html, 中重量级的对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力;也就是说我们是将DataAdapter对象当做DataSet 对象以及数据源间传输数据的桥梁。 DataReader:当我们只需要循序的读取数据而不需要其它操作时,可以使用DataReader 对象。DataReader对象只是一次一笔向下循序的读取数据源中的数据,而且这些数据是只读的,并不允许作其它的操作。因为DataReader 在读取数据的时候限制了每次只读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很好。使用DataReader 对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。 https://www.wendangku.net/doc/359190744.html, 使用Connection 对象来连接数据库,使用Command 或DataAdapter对象来

UML面向对象技术期末复习整理

UML面向对象技术期末复习整理 第一章 1、UML支撑软件整个生命周期 2、对象:面向对象系统的基本构造块,是一些相关的变量和方法的软件集 3、事件:指一种由系统预先定义而由用户或系统发出的动作 4、面向对象的基本特征:抽象,封装,继承,多态 5、模型:对现实客观世界的形状或状态的抽象模拟和简化 6、UML定义:是对软件密集系统进行可视化建模的一种语言,也是为面向对象开发系统的产品进行说明、可视化、构造和编制问的一种标准语言 7、UML可贯穿软件开发周期的每一阶段,最适用于数据建模、业务建模、对象建模、组件建模 填空题 1、统一建模语言UML是绘制软件蓝图的标准工具语言,可以对软件系统产品进 行说明、可视化、构造和编制文档 2、UML在实际软件项目中,可以用于构造各种类型系统的业务模型和软件模 型。 3、软件的开发模式有瀑布模型、喷泉模型、基于构件的开发模型和XP方法。 4、面向对象程序的三大要素是多态、封装和继承。 5、瀑布模型的缺点是缺乏灵活性,特别是无法解决软件需求不明确或不准确的 问题。 选择题 1、对象程序的基本特征是:抽象、封装、继承、多态 2、类包含的要素有:名字、属性、操作 3、下列关于类与对象的关系说法不正确的是:有些对象是不能被抽象类的 4、面向对象方法中的继承机制是子类可以自动地拥有(复制)父类全部属性和 操作 5、建立对象的动态模型一般包含的步骤有:准备脚本、确定事件、准备事件 跟踪表、构造状态图 第二章 1、UML的概念和模型分为静态结构、动态行为、实现构造、模型组织和扩展机制这几个机制 2、面向对象的事物分为:结构事物、行为事物、分组事物、注释事物

面向对象-练习题

【练习题】01.类的成员变量: 猜数字游戏:一个类A有一个成员变量v,有一个初值100。定义一个类,对A 类的成员变量v进行猜。如果大了则提示大了,小了则提示小了。等于则提示猜测成功。 【练习题】02.类的成员变量: 请定义一个交通工具(Vehicle)的类,其中有: 属性:速度(speed),体积(size)等等 方法:移动(move()),设置速度(setSpeed(int speed)),加速speedUp(),减速speedDown()等等. 最后在测试类Vehicle中的main()中实例化一个交通工具对象,并通过方法给它初始化speed,size的值,并且通过打印出来。另外,调用加速,减速的方法对速度进行改变。 【练习题】03类的成员方法 创建一个账户Account类,该类有id:账户号码(长整数) name:真实姓名字符串类型,balance:账户余额double 类型.方法:deposit: 存款方法,参数是double 型的金额;withdraw:取款方法,参数是double型的金额. 在main方法中创建Account类的对象,调用各个方法,并显示存取款结果。 【练习题】04.构造方法 编写Java程序,模拟简单的计算器。12 3 定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为公共。编写构造方法,赋予n1和n2初始值,再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。 在main方法中创建Number类的对象,调用各个方法,并显示计算结果。 【练习题】05.构造方法: 编写Java程序,用于显示人的姓名和年龄。 定义一个人类(Person),该类中应该有两个私有属性,姓名(name)和年龄(age)。定义构造方法,用来初始化数据成员。再定义显示(display)方法,将姓名和年龄打印出来。 在main方法中创建人类的实例,然后将信息显示。

面向对象技术Java-期末复习试卷(四)

期末复习试卷(四) 一、单项选择题 1、关于静态变量的概念,下列哪一个正确 A. 一旦一个静态变量被分配,它的值就不允许改变. B. 一个静态变量在方法中被创建,它在被调用前保留上一次调用的结果. C. 在任意多个类的实例中,它们共享类定义的静态变量 D. 在任意多个类的实例中,它们各有自己的静态变量. 正确答案:B 2、选出下面不能作为void Med(int x)方法重载的声明。 A. void Med (double y) B. int Med (int y) C. double Med (int x, int y) D. public float Med (float x) 正确答案:B 3、下列哪一个不正确 A. 一个抽象类必须定义抽象方法. B. 定义了抽象方法的类必定是抽象类. C. 一个接口中,定义的每一个方法必须是抽象方法. D. 一个接口中,定义的每一个成员变量必须是常量. 正确答案:A 4、Circle是GeometricObject的子类。如果有语句:Circle circle = new Circle(1);GeometricObject object = new GeometricObject();那么下面哪个布尔表达式的值为false? A. (circle instanceof GeometricObject) B. (object instanceof GeometricObject)

C. (circle instanceof Circle) D. (object instanceof Circle) 正确答案:D 5、下列关于变量的叙述哪个是错的? A. 实例变量是类的成员变量 B. 实例变量用关键字static声明 C. 在方法中定义的局部变量在该方法被执行时创建 D. 局部变量在使用前必须被初始化 正确答案:B 二、程序题 1、编写一个应用程序,模拟机动车的加速和减速功能。机动车类Vehicle的UML图如 下,其中speedUp()方法实现加速功能,速度上限为240 km/h;speedDown()实现降速功能,下限为0 km/h。 解题要求:编写测试程序,创建Vehicle对象,设置初始速度为100 km/h,调用speedDown()方法减速5 km,再调用speedUp()方法提速10 km,输出车辆的最终速度。

面向对象期末测试题(带答案).doc

济南大学2009~2010 学年第二学期课程考试试卷 课 程 java 面向对象程序设计 授课教师 考试时间 考试班级 学 号 姓 名 … … …… …… …………………………装……………… …………订………………… …… …线 …… …… …… … …… …… …… …… …

C.一个if语句只能有一个else if语句与之对应 D.else if结构中必须有default语句 5.while循环和do…while循环的区别是:(D) A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.do…while循环执行次数可能为0 D.while循环执行次数可能为0 6.关于for循环和while循环的说法哪个正确?(B) A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空 7.下列修饰符中与访问控制无关的是(D) A.private B.public C.protected D.final 8.方法内的形参:(B) A.必须定义多个形参B.可以没有 C.至少有一个D.只能是简单变量 9.throws的作用:(A) A.表示方法可能会抛出例外 B.表示后面是方法的输出量 C.方法的标志,每个方法都必须有 D.没有意义 10.在Java语言中,整型常量123占用的存储字节数是:(C)A.1B.2 C.4 D.8 11.关于对象成员占用内存的说法哪个正确?(B) A.同一个类的对象共用同一段内存 B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间

面向对象编程练习题库test

面向对象编程练习题库 t e s t Document serial number【KKGB-LBS98YT-BS8CB-BSUT-BST108】

面向对象编程练习题 专题1 初识Java 一、填空题 1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是()、()、()。 2.环境变量的设置,若JDK安装在“D:\JDK”,则应设置Path为()、classpath 为()。 3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展 名为()。 4.如果Java源文件中有多个类,那么只能有一个类是()类。 二、选择题 1.作为Java应用程序入口的main方法,其声明格式是() A.public static int main(String args[]) B.public static void main(String args[]) C.public void main(String args[]) D.public int main(String args[]) 2.下面命令正确的是() A.java B.java AppFirst C.java D.javac AppFirst 3.设有一个Java小程序,源程序名为,其HTML文件为,则运行该小程序的命令为 () A.java FirstApplet B.javac C.appletviewer D.appletviewer 4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的()文件夹下。A.bin B.jre C.include D.doc 5.Java语言是一种语言。 A.机器B.汇编C.面向过程的D.面向对 象的 6、Java程序的最基本组成单位是( )。

Java面向对象编程上机-练习题汇总

【练习题】类的成员变量: 猜数字游戏:一个类A有一个成员变量v,有一个初值100。定义一个类,对A 类的成员变量v进行猜。如果大了则提示大了,小了则提示小了。等于则提示猜测成功。 【练习题】类的成员变量: 请定义一个交通工具(Vehicle)的类,其中有: 属性:速度(speed),体积(size)等等 方法:移动(move()),设置速度(setSpeed(int speed)),加速speedUp(),减速speedDown()等等. 最后在测试类Vehicle中的main()中实例化一个交通工具对象,并通过方法给它初始化speed,size的值,并且通过打印出来。另外,调用加速,减速的方法对速度进行改变。 【练习题】类的成员变量与方法、构造方法 在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程序中的需要。 定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute),秒(second),为了保证数据的安全性,这三个成员变量应声明为私有。 为MyTime类定义构造方法,以方便创建对象时初始化成员变量。 再定义diaplay方法,用于将时间信息打印出来。 为MyTime类添加以下方法: addSecond(int sec) addMinute(int min) addHour(int hou) subSecond(int sec) subMinute(int min) subHour(int hou) 分别对时、分、秒进行加减运算。 【练习题】构造方法 编写Java程序,模拟简单的计算器。 定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有。编写构造方法,赋予n1和n2初始值,再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。 在main方法中创建Number类的对象,调用各个方法,并显示计算结果。 【练习题】构造方法: 编写Java程序,用于显示人的姓名和年龄。 定义一个人类(Person),该类中应该有两个私有属性,姓名(name)和年龄(age)。定义构造方法,用来初始化数据成员。再定义显示(display)方法,将姓名和年龄打印出来。

Java面向对象习题

选择题 1、下列关于变量的叙述哪个是错的?() A. 实例变量是类的成员变量。 B. 在方法中定义的局部变量在该方法被执行时创建。 C. 实例变量用关键字static声明。 D. 局部变量在使用前必须被初始化。 2、在Java语言中,下列哪个包是编译器自动导入的?() A. java.applet B. https://www.wendangku.net/doc/359190744.html,ng C. java.io D. java.awt 3、当类的成员未用访问权限修饰符时,Java认为此成员的访问权限为()。 A. private B. protected C.friendly D.public 4、下面哪个关键字不是用来控制对类成员的访问的?() A. public B. protected C. default D. private 5、下面哪一个特性不是面向对象编程主要体现的()。 A. 封装性 B. 继承 C. 多态 D. 类 6、不允许作为类及类成员的访问控制符的是()。 A. public B. private C. static D. protected 7、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB 作为前缀就可以调用它,该方法头的形式为()。 A、static void method( ) B、public void method( ) C、final void method( ) D、abstract void method( ) 8、可以在下面代码段point x处写入的是?() //point x public class Interesting{ //do something } A. String str; B. static int PI=3.14; C. public class MyClass{//do other thing…} D. import java.awt.*; 9、下列关于变量的叙述哪个是错的?() A、实例变量是类的成员变量。 B、在方法中定义的局部变量在该方法被执行时创建。 C、实例变量用关键字static声明。 D、局部变量在使用前必须被初始化。 10、下列哪个类声明是正确的?() A、abstract final class HI{} B、abstract private move(){} C、protected private number; D、public abstract class Car{}

面向对象考试题

第五章考试题 一、选择题:(每题3分,共20题) 1.下面关于类的说法错误的一项是()。 A、类属于Java语言中的复合数据类型 B、对象是Java语言 中的基本结构单位 C、类是同种对象的集合和抽象 D、类就是对象 2.如下所示代码: public class Test05_01{ private float a; public static void m ( ){ } } 如何使成员变量a被方法m( )访问()。 A、将private float a改为public float a B、将private float a改为static float a C、将private float a改为protected float a D、将private float a改为float a 3.下面关于类的说法有误的一项是()。 A、类就是对象 B、类是同种对象的集合和 抽象 C、类属于Java语言中的复合数据类型 D、对象是Java语言 中的基本结构单位

4.下列哪种类成员修饰符修饰的变量只能在本类中被访问()。 A、protected B、default C、private D、public 5.下面关于方法的说法不正确的一项是()。 A、类的私有方法不能被其他类直接访问。 B、Java中的构造方法名必须和类名相同。 C、方法体是对方法的实现,包括变量声明和合法语句。 D、如果一个类定义了构造方法,也可以用该类的默认构造方法。 6.下列程序的运行结果是()。 public class Test05_02 extends x{ int ab(){ static int a = 10; a++; System.out.println(a); } public static void main(String[] args) { Test05_02 b = new Test05_02 (); b.ab(); } } A、10 B、编译错误 C、11 D、运行成功,但不输出

Java面向对象测试试题

《使用Java实现面向对象编程》阶段测试-笔试试卷 一、选择题(共25题,每题4分,满分100分) 1) 在Java类中,使用以下()声明语句来定义公有的int型常量MAX。 A. public int MAX = 100; B. final int MAX = 100; C. public static int MAX = 100; D. public static final int MAX = 100; 2) 在Java中,下列关于方法重载的说法中错误的是()。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定Java代码如下所示,在横线处新增下列()方法,是对cal方法的重载。 public class Test{ public void cal(int x, int y, int z) {} } A. public int cal(int x, int y, float z){ return 0; } B. public int cal(int x, int y, int z){ return 0; } C. public void cal(int x, int z){ } D. public void cal(int z, int y, int x){ } 4) 在Java中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数

Java面向对象测试试题(经典)

《使用实现面向对象编程》阶段测试-笔试试卷 一、选择题(共25题,每题4分,满分100分) 1) 在类中,使用以下()声明语句来定义公有的型常量。 A. = 100; B. = 100; C. = 100; D. = 100; 2) 在中,下列关于方法重载的说法中错误的是()。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定代码如下所示,在横线处新增下列()方法,是对方法的重载。 { ( x, y, z) {} } A. ( x, y, z){ 0; } B. ( x, y, z){ 0; } C. ( x, z){ }

D. ( z, y, x){ } 4) 在中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是 C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数 5) 下面代码的运行结果是()。 { ; 名字 0; 健康值 ; 性别 () { = 10; = "雄"; ("执行构造方法。"); } () { ("企鹅的名字是" + + ",健康值是" + + ",性别是" + "。"); } ([] ) { = (); (); } } A. 企鹅的名字是,健康值是10,性别是雄。 B. 执行构造方法。

企鹅的名字是,健康值是0,性别是。 C. 企鹅的名字是,健康值是0,性别是。 D. 执行构造方法。 企鹅的名字是,健康值是10,性别是雄。 6) 下列选项中关于中封装的说法错误的是()。 A. 封装就是将属性私有化,提供公有的方法访问私有属性 B. 属性的访问方法包括方法和方法 C. 方法用于赋值、方法用于取值 D. 类的属性必须进行封装,否则无法通过编译 7) 使用实现封装,第一步是修改属性可见性来限制对属性的访问,第二步是创建赋值和取值方法,用于对属性的访问,第三步应该是()。 A. 使用赋值和取值方法访问属性 B. 编写常规方法访问属性 C. 在赋值和取值方法中,加入对属性的存取限制 D. 编写方法创建对象,调用赋值和取值方法访问属性 8) 分析如下所示的代码,其中关键字的意思是()。 { ; () { ;

面向对象程序设计考试题库

面向对象程序设计期末综合练习一(单选题) 单选题 1. C++源程序文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 4. 编写C++程序一般需经过的几个步骤依次是( )。 A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试 C. 编译、调试、编辑、连接 D. 编辑、调试、编辑、连接 5. 以下标识符中不全是保留字的是( )。 A. case for int B. default then while C. bool class long D. goto return char 6. 能作为C++程序的基本单位是( )。 A. 字符 B. 语句 C. 函数 D. 源程序文件 7. 程序中主函数的名字为( )。 A. main B. MAIN C. Main D. 任意标识符 8. C++程序的基本模块为( )。 A. 表达式 B. 标识符 C. 语句 D. 函数 9. 可用作C++语言用户标识符的一组标识符是( )。 A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 10. 存储以下数据,占用存储字节最多的是( )。 A. 0 B. …0? C. “0” D. 0.0 11. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a 的值是( )。 A. 12 B. 144 C. 156 D. 288 13. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc 1的表达式是( )。 A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c 14. 设”int a=15,b=26;”,则”cout<<(a,b);”的输出结果是( )。 A. 15 B. 26,15 C. 15,26 D. 26

相关文档
相关文档 最新文档