文档库 最新最全的文档下载
当前位置:文档库 › 面向对象复习题

面向对象复习题

面向对象复习题
面向对象复习题

第一部分面向对象方法概述

一、填空题

1.对象的抽象是,类的实例是。

2.动态模型描述了系统的结构。

3.软件系统中存在两种控制流,外部控制流是系统中对象之间外部事件的事件流,

有、和三种外部事件控制流。控制流是一个处理内

部的控制,均可结构化。

4.在C++和C中有一个函数,可以使用这个过程来说明构成系统主要对象

的那些类的实例。

5.继承性是自动共享父类属性和的机制。

6.对象具有封装性,实现了的组合。

7.在面向对象方法中,信息隐藏通过对象的来实现。类结构分离了

和,从而支持了信息隐藏。

8.抽象是指强调实体的、,忽略一些无关紧要的属性。类实现了对象

的和的抽象,它是对象的共性的抽象。

9.子类只继承的属性和操作,称为单重继承。

10.对象的抽象是,类的具体化就是,也可以说类的实例

是。

11.类具有,它是的行动的抽象。

12.对象具有状态,对象用来描述它的状态。

13.概念模型描述了系统的。功能模型指出,动态模型确定,

而对象模型确定。功能模型由组成。

14.面向对象有三个基本要素,它们是、、。

15.面向对象技术在三个级别上促进了共享,它们是、、。

16.活动是一种有时间间隔的操作,它是依附于。动作是一种瞬时操作,它

是与联系在一起的操作。

17.封装性是指所有软件部件内部都有明确的以及清楚的。每个软

件部件都有友好的,软件部件的与分离。

18.主要的对象类型有、、和。

19.同一个类中的共享是指同一个类中的对象有着相同的和相同

的。

20.结构化方法的本质是,其、可修改性和可重用性都比较差。

21.对象还有,用于改变对象的状态。对象实现了和的

结合。

22.面向对象方法认为系统是由应用域的组成。

23.对象具有状态,描述对象的状态用它的。

24.类具有属性,描述类的属性用。

25.一个方法有、和。

26.动态模型描述了系统的。

27.对象模型的主要元素是类,关联和。

28.通过这种机制和构造来实现不同应用中的信息共享。

29.面向对象程序设计语言与其它程序设计语言的主要区别是它具有。

30.对象具有很强的能力和功能。

31.类具有属性,它是对象的的抽象,用来描述类的属性。

32.面向对象的特征是、、、。

33.子类自动共享父类的属性和操作的机制称为。

34.类的实例化是。

35.不同应用中信息共享的这种机制和构造是通过来实现的。

二、选择题

1.对象模型的描述工具是()。

A.状态图B.数据流图

C.对象图D.结构图

2.面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析,设

计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法

和过程,因此面向对象方法有许多特征,如软件系统是由对象组成的;();对

象彼此间仅能通过传递消息互相联系;层次结构的继承。

A.开发过程基于功能分析和功能分解

B.强调需求分析的重要性

C.把对象划分成类,每个对象类都定义一组数据和方法

D.对既存类进行调整

3.每个对象可用它自己的一组属性和它可以执行的一组()来表现。

A.行为B.功能

C.操作D.数据

4.面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层

次结构的系统,一各类的上层可以有父类,下层可以有子类,这种层次结构系统的

一个重要性质是(),一个类获得其父类的全部描述(数据和操作)。

A.传递性B.继承性

C.复用性D.并行性

5.面向对象的主要特征除对象唯一性,封装,继承外,还有()。

A.多态性B.完整性

C.可移植性D.兼容性

6.面向对象开发方法子概念和表示上的一致性保证了分析和设计的()过渡。

A.困难B.不容易

C.平滑D.顺序

7.动态模型的描述工具是()。

A.对象图B.结构图

C.状态图D.设计图

8.表示对象的相互行为的模型是()模型。

A.对象B.动态

C.功能D.静态

9.在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。动态模型着重

于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是()。

A.数据流图B.状态图

C.系统结构图D.时序图

10.在确定属性时,所有()是候选定属性。

A.动词B.名词

C.修饰性名词词组D.词组

11.在开发废弃型类时,在软件生存期中最花费时间的部分应当是软件的()。

A.实现B.测试

C.设计D.求精和维护

12.一个面向对象系统的体系结构通过它的成分对象和对象间的关系确定,与传统的面

向数据流的结构化开发方法相比,它具有()优点。

A.设计稳定B.变换分析

C.事务分析D.模块独立性

13.以下说法错误的是()。

A.面向对象方法不仅支持过程抽象,而且支持数据抽象

B.某些面向对象的程序设计语言还支持参数化抽象

C.信息隐蔽通过对象的封装性来实现

D.在面向对象方法中,类是最基本的模块

14.所有的对象可以成为各种对象类,每个对象类都定义了一组()。

A.说明B.方法

C.过程D.类型

15.以下说法错误的是()。

A.对象具有很强的表达能力和描述功能

B.对象是人们要进行研究的任何事务

C.对象是封装的最基本单位

D.类封装比对象封装更具体、更细致

16.一个面向对象的系统结构通过它的()的关系确定。

A.类和对象B.成分对象和对象

C.过程和对象D.类与界面

17.以下说法错误的是()。

A.多态性防止了程序相互依赖性而带来的变动影响

B.多态性实质相同的词组或函数、过程可作用于多种类型的对象伤病很多不同结果

C.多态性与继承性相结合使软件具有更广泛的重用性和可扩充性

D.封装性是保证软件部件具有优良的模块性的基础

18.在软件工程学中,我们把一组具有相同数据结构和相同操作的对象的集合定义为

(),此定义包括一组数据属性和在数据上的一组合法操作。

A.类B.属性

C.对象D.消息

19.对象是面向对象开发的基本成分,每个对象可用它本身的一组()和它可以执行

的一组操作来定义。

A.服务B.参数

C.属性D.调用

20.通过执行对象的操作改变该对象的属性,但它必须通过()的传递。

A.接口B.消息

C.信息D.操作

21.()模型表示了对象的相互行为。

A.对象B.动态

C.功能D.操作

22.在确定类时,所有()是候选的类。

A.对象B.动态

C.功能D.分析

23.按照传统的生命周期方法开发软件,各阶段工作自顶向下,从抽象到具体顺序进行,我们一般用()模型来模拟。

A.螺线模型B.喷泉模型

C.瀑布模型D.椭圆模型

24.Rumbangh等人提出的对象模型技术OMT把分析时收集的信息构造在三类模型中,即对象模型、动态模型和()。

A.信息模型B.控制模型

C.椭圆模型D.行为模型

25.以下说法错误的是()。

A.数据流图中的处理用来改变数据值

B.在一个计算中,用数据流来表示一中间数据值,数据流不能改变数据值

C.动作对象是一种主动对象,它通过声称或者使用数据值来驱动数据流图

D.数据流图中的数据存储是被动对象,它用来存储数据

E.存储和动作对象可以用文件和外部设备来实现

26.与事件联系在一起的顺势操作是()。

A.处理B.动作

C.活动D.加工

27.应用执行对象的操作可以改变该对象的()。

A.属性B.功能

C.行为D.数据

28.以下说法正确的是

A.组装结构可用来描述现实世界中的一般的抽象关系

B.分类结构可用来描述现实世界中的类的组成的抽象关系

C.面向对象的继承性是子类自动共享父类数据结构和方法的机制

D.面向对象的惟一性是指将具有一致性的数据结构(属性)和行为(操作)的对象抽象成类。

29。以下说法正确的是()。

A.对象模型指出发生了什么

B.动态模型确定什么时候发生

C.功能模型确定发生的客体

D.功能模型描述了系统的所有计算,他考虑所计算的次序

30.有时间间隔的操作是()

A.动作B.活动

C.加工D.处理

31.软件部分的内部实现与外部可访问性分离,这是指软件的()。

A.继承性B.共享性C.封装性D.抽象性

32.常用动词或动词词组来表示()。

A.对象B.类

C.关联D.属性

33.在只有单继承的类层次结构中,类层次结构是()层次结构。

A.树型B.网状型

C.星型D.环形

34.以下说法正确的是()。

A.功能模型不包括对象模型中值的约束条件

B.功能模型说明对象模型中操作的含义

C.功能模型说明动态模型中约束的含义

D.功能模型说明对象模型中动作的意义

35.以下说法正确的是()。

A.角色说明类在关联中的作用,它位于关联的端点

B.不同类的关联角色不能省略

C.同类的关联角色可有可无

D.在一个类层次结构中,若有多重继承,则该类层次结构是树型层次结构

E.在一个类层次结构中,若有单重继承,则该类层次结构是网状层次结构

三、简答题

1.试述面向对象方法的开发过程是怎样的?

2.简述对象、类、类结构、消息、方法的基本概念。

3.传统开发方法存在的问题是什么?

4.试述面向对象方法有哪些特征。

5.为什么说用结构化方法开发的软件,其稳定性、可修改性和可充用性都比较差?

6.功能模型的特征有哪些?

7.继承性和多态性的好处是什么?

第二部分面向对象分析

一、填空题

1.面向对象分析的目的_________。

2.概念模型描述了系统的________。功能模型指出________,动态模型确定_________,

而对象模型确定________。功能模型由_________组成。

3.整体-部分结构称为________结构,他们之间的关系是一种“________”关系,或者

是“________”关系。

4.对象具有状态,描述对象的状态用它的_________。

5.一个方法有_________、________和________。

6.一般-机体结构关系称为__________结构,也可以说是“__________”关系,或者是“__________”关系。

7通过__________这种机制和构造来实现不同应用中的信息共享。

8对象具有很强的__________能力和__________功能。

9子类只继承一个父类的属性和操作,这称为__________。

10聚集是一种“_________”关系。聚集最重要的性质是_________,也具有_____ 11面向对象的特征是__________、__________、__________、__________。

12说明一个状态可采用________、________、________、________、________等内容描述。

13在类层次中,子类只继承一个父类的数据结构和方法,则称为________。子类继了多个父类的数据结构和方法,则称为_________。

14功能模型由多张数据流图组成。数据流图中包含有________、_______、_______ 对象和________对象。

15对象的抽象是__________,类的具体化就是__________。

16类通常有两种主要的结构关系,即__________关系和__________关系。

17主要的对象类型有_________、_________、_________和__________。

18动态模型描述了系统的__________。

19对象具有封装性,实现了__________的组合。

20事件跟踪图用来表示________、________对象和_______对象。______和_______可用一条垂直线表示,各______用水平箭头表示,箭头方向是从_______对象指向

______对象。

21一般化关系是“_____________”的关系,有一般化类和具体类之分,一般化类又称_________类,具体类又称__________类,各__________ 类继承了__________

类的性质,各________类的一些共同性质和操作又归纳到________类中。

22面向对象的三种分析模型是:________模型、________模型和________模型。

23类的实例化是__________。

24不同应用中信息共享的这种机制和构造是通过_________来实现的。

25结构化方法的本质是_________,其_________、可修改性和可重用性都比较差。

26对象还有________,用于改变对象的状态。对象实现了_______和_______的结合。

27对象具有状态,对象用__________来描述它的状态。

二、选择题

1.面向对象分析阶段建立的三个模型中,核心的模型是()模型。

A.功能B.动态

C.对象D.分析

2.表示对象的相互行为的模型是()模型。

A.对象B.动态

C.功能D.静态

3.汽车有一个发动机,汽车与发动机之间的关系是()关系。

A.一般与具体B.整体与部分

C.分类关系D.is a

4.火车是一种路上交通工具,火车和路上交通工具之间的关系是()关系。

A.组装B.整体与部分

C.has a D.一般与具体

5.软件开发过程中,抽象和整理用户需求并建立问题域精确模型的过程叫()。

A.生存期B.面向对象设计

C.面向对象程序设计D.面向对象分析

6.一个面向对象的系统的体系结构通过它的()的关系确定。

A.类和对象B.成分对象和对象

C.过程和对象D.类与界面

7.在面向对象的系统设计中,以下说法错误的是()。

A.系统中主要的组成部分成为子系统

B.子系统是一个对象和一个功能

C.子系统是类、关联、操作、事件和约束的集合

D.每次分解的各子系统数目不能太多,最底层子系统成为模块

8.在软件工程学中,我们把一组具有相同数据结构和相同操作的对象的集合定义为

(),此定义包括一组数据属性和在数据上的一组合法操作。

A.类B.属性

C.对象D.消息

9.以下说法错误的是()。

A.采用面向对象方法开发软件的主要优点是通过重用提高软件的生产率

B.在面向对象程序中,对象是属性(状态)和方法(操作)的封装体

C.在面向对象程序中,对象彼此间通过继承和多态性启动相应操作

D.继承和多态机制是面向对象程序中实现重用的主要手段

10.以下说法错误的是()。

A.面向对象分析与面向对象设计的定义没有明显区别

B.在实际的软件开发过程中面向对象分析与面对象设计的界限是模糊的

C.面向对象分析和面向对象设计活动一个多次反复迭代的过程

D.从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程

11.面向对象开发的分析文档应当()考虑问题,在分析阶段识别的概念是高层的

概念。

A.与问题直接相关B.与问题不相关

C.在更小的问题范围内D.在更大的问题范围内

12.以下说法正确的是()。

A.组装结构可用来描述现实世界中的一般的抽象关系

B.分类结构可用来描述现实世界中的类的组成的抽象关系

C.面向对象的继承性是子类自动共享父类数据结构和方法的机制

D.面向对象的惟一性是指将具有一致性的数据结构(属性)和行为(操作)的

对象抽象成类

13.功能模型中所有的()往往形成一个层次结构。在这个层次结构中一个数据流

图的过程可以由下一层数据流图作进一步的说明。

A.数据流图

B.概念模型图

C.状态迁移图

D.事件追踪图

14.在有多重继承的类层次结构中,类层次结构是()层次结构

A.树形B.网状型

C.环形D.星型

15.在数据流图中,以下说法错误的是()。

A.数据存储用一条直线表示,线段纸上标注存储名

B.动作对象用长方形表示,说明它是一个对象

C.处理用椭圆表示,椭圆中含有对处理的描述

D.数据流图中的数据柳江对象的输出与处理、处理与对象的输入、处理与处理联系起来

E.有些数据流也是对象。在数据流图中,用空三角来表示产品对象的数据流

16.以下说法错误的是()。

A.功能模型是类似编译器之类系统的主要模型

B.功能模型由多张数据流图组成

C.数据流图不表示控制信息,控制信息在动态模型中表示

D.数据流图也不表示对象中的值的组织,这种信息在对象模型中表示

E.有些数据流也是对象,把对象看成是单纯的树枝和把对象看成是包含许多数值的数据存储这二者是相同的

17.描述类中某个对象的行为,反映了状态与事件关系的是()。

A.对象图B.状态图

C.流程图D.结构图

18.与事件联系在一起的顺势操作是()。

A.处理B.动作

C.活动D.加工

19.同一类中有相同的数据结构,这是()级别的共享。

A.不同应用B.同一应用

C.不同类D.同一类

20.类库这种机制是()级别的共享。

A.同一类B.不同类

C.同一应用D.不同应用

三、简答题

1.对象设计包含哪些内容?

2.简述对象模型的特征,并举一个现实的实例,给出它的一般化关系、聚集关系的

描述

3.面向对象分析模型的用途是什么?

4.简述对象的建模过程。

5.简述动态模型的特征。说明事件、事件跟踪图、状态、状态图的含义。

第三部分面向对象的设计

一、填空题

1.现实世界中,各对象之间相互触发,一个触发行为就是一个_______。对事件的响应取决于_______的状态。响应包括_______的改变或形成一个新的_______。

2.一般来说,对面向对象软件的测试可分为_______ ,_______,_______和______四个层次进行。

3.受限关联由两个类和一个_______组成。

4.在面向对象的系统设计中,常见的系统种类有_______,_______,_______,

_______,_______和_______。

5.同一个类中的共享是指同一个类中的对象有着相同的_______和相同的_______。

6.在类的层次结构中,通常上层类称为_______类或_______ 类,下层类称为

_______类。

7.面向对象的准则是_______,_______,_______,_______ ,_______ 和_______。

8.面向对象开发方法有:_______方法,_______方法,______方法,_______方法。

9.抽象是指强调实体的_______,_______ 。忽略一些无关紧要的属性。类实现了对象的_______ 和_______的抽象,它是对象的共性的抽象。

10.面向对象设计可分为_______设计和_______设计。

11.在面向对象设计中存在_______ ,_______,_______ 三种内聚。

12.对于纯面向对象的语言,在系统中的每个“事务”都是_______ 。在这些语言中没有“_______过程”,而且常常是交互的。

二、选择题

1.面向对象程序设计语言不同于其他语言的最主要特点是()

A.模块性B.抽象性

C.继承性D.共享性

2.在面向对象方法中,信息隐蔽是通过对象的()来实现的。

A.分类性B.继承性

C.封装性D.共享性

3.()应当在应用分析之前进行,因为我们在了解问题之前应当对问题敞开思

想考虑,不应加以限制。

A.论域分析B.高层设计

C.实例的建立D.类的开发

4.在面向对象的设计中,我们应遵循的设计准则除了模块化,抽象,低耦合,高内聚

以外,还有()。

A.隐藏复杂性B.信息隐藏

C.经常类的复用D.类的开发

5.在面向对象程序设计中,以下能够正确指出为提高重用性应遵守的主要规则标号的

序号是()。

①提高方法的内聚②减少方法规模

③保持方法的一致性④把策略与实现分开

⑤全面覆盖⑥尽量不使用全局信息

⑦避免使用多分支语句⑧精心确定共有方法

A.③④⑤⑥⑦⑧B.①②③④⑤⑥

C.①②③⑥⑦⑧D.①②④⑥⑦⑧

6.下说法错误的是()。

A.采用面向对象方法开发软件的基本目的和主要优点是通过重用提高软件的生产率

B.在面向对象程序中,对象是属性(状态)和方法(操作)的封装体

C.在面向对象程序中,对象彼此间通过继承和多态性启动相应的操作

D.继承和多态机制是面向对象程序中实现重用的主要手段

7.以下说法错误的是()。

A.面向对象分析于面向对象设计的定义没有明显区别

B.在实际的软件开发过程中面向对象分析与面向对象设计的界限是模糊的

C.面向对象分析和面向对象设计活动是一个多次反复迭代的过程

D.从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程

8.在面向对象设计中,以下能够正确指出为了提高可扩充性应遵守的主要准则是

()。

①封装实现策略②不要用一个方法遍历多条关联链

③避免使用多分支语句④精心确定公有方法

⑤不要预先确定限定条件⑥先测试后优化

A.③④⑤⑥B.②③④⑤

C.①②③④D.①②③⑤

9.在面向对象程序设计中,以下能够正确指出为提高健壮性应遵守的主要守则是

()。

①预防用户的操作错误②检查参数的合法性

③不要预先确定限制条件④先测试后优化

⑤全面覆盖⑥尽量不使用全局信息

A.③④⑤⑥B.②③④⑤

C.①②③④D.①②③⑤

10.面向对象的实现主要包括两项工作,以下能正确之处这两项的是()。

①把面向对象设计结果翻译成用某种程序设计语言书写的面向对象程序

②测试并调试面向对象程序

③面向对象设计

④选择程序设计语言

A.①②B.③④

C.①③D.②④

E.②③F.①④

11.以下说法错误的是()。

A.面向对象方法不仅支持过程抽象,而且支持数据抽象

B.某些面向对象的程序设计语言还支持参数化抽象

C.信息隐藏通过对象的封装性来实现

D.在面向对象方法中,类是最基本的模块

12.以下说法错误的是()。

A.对象具有很强调表达能力和描述功能

B.对象是人们要进行研究的任何事务

C.对象是封装的最基本单位

D.类封装比对象封装更具体、更细致

13.UML是一种面向对象的统一建模语言。它包含十种视图,其中,用例图展示了外

部actor与系统所提供的用例之间的连接,UML中外部actor(是指(A),用例可以用(B)图来描述。状态图指明了对象所有可能的状态以及状态间的迁移(transition)。如果一个并发的状态由n个兵法的子状态图组成,那么,该并发状态在某时刻的状态由(C)个子状态图中各取一个状态组合而成。协作图描述了写作的(D)之间的交互和链接(link),它画成(E)图的形式。

供选择的答案:

A:①人员②单位③人员或单位④人员或外部系统

B:①类②状态③活动④协作

C:①每一②任意一③任意二④任意m(m≤n)

D:①对象②类③用例④状态

E:①对象②类③用例④状态

14.从供选择的答案中,选出应填入下面叙述空格内的最确切的答案,把相应编号写在

答卷的对应栏中。

软件复用使用已有的软件产品(如设计、代码、文档等)来开发新的软件系统的过程。软件复用的形式大体可分为垂直式复用和水平式复用。垂直式复用是指用(A)中的复用,水平式复用是指用(B)的复用。为了提高构件(Component)的复用率,通常要求构件具有较好的(C)。为了不同软件生产厂商在不同软硬件平台上开发的构件组成一个系统,必须解决异构平台的各构件间的互操作问题。目前国际上已出现一些支持互操作的构件标准,典型的有国际对象管理组织OMG推荐的(D)和Microsoft公司推出的(E)。

供选择的答案:

A、B:

①同一软件系统②不同软件系统

③同一应用领域④不同应用领域

C:①专用性和不变性②专用性和可变性

③通用性和不变性④通用性和可变性

D、E:

①CORBA ②DCOM

③JavaBeans ④Delphi

15.从供选择的答案中,选出应填入下面叙述中的空格内的最确切的解答,把相应编号

写在答卷的对应栏内。

面向对象程序设计的基本思想是通过建立和客观实际相对应的对象,并通过这些对象的组合来创建具体的应用。对象是(A)。对象的三要素是指对象的(B)。

(C)均属于面向对象的程序设计语言。而面向对象的程序设计语言必须具备(D)特征。Windows下的面向对象程序设计和通常的Dos下的结构化程序设计最大区别是(E)。

供选择的答案:

A:①数据结构的封装体②数据以及在其上的操作的封装体

③程序功能模块的封装体④一组有关事件的封装体

B:①名字、字段和类型②名字、过程和函数

③名字、文字和图形④名字、属性和方法

C:①C++、LISP ②C++、Smalltalk

③PROLOG、ADA ④FOXPRO、ADA

D:①可视性、继承性、封装性②继承性、可充用性、封装性

③继承性、多态性、封装性④可视性、可移植性、封装性

E:①前者可以使用大量下拉式选单(menu),后者是用命令方式调用

②前者是一种消息驱动式体系结构,后者是一种简单调用

③前者具有强大的图形用户接口,后者无图形接口

④前者可以突破内存管理640KB的限制,后者不能

三、简答题

1.在面向对象程序设计中,为适应面向对象方法所特有的概念(例如继承性)而必须遵循哪些新准则?

2.简述面向对象设计的启发规则。

3.设计简单的类应该是什么?

4.保证设计结果清晰易懂的主要因素是什么?

5.面向对象设计准则是什么?

6.系统设计的内容是什么?

7.面向对象软件的测试如何进行?

面向对象方法题库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提出,其基本思想是,一个软件实体如果使用的是一个基类对象,那么一定适用于其子类对象,而且觉察不出基类对象和子类对象的区别,即把基类都替换成它的子类,程序的行为没有变化。反过来则不一定成立,如果一个软件实体使用的是一个子类对象,那么它不一定适用于基类对象。 在运用里氏替换原则时,尽量将一些需要扩展的类或者存在变化的类设计为抽象类或者接口,并将其作为基类,在程序中尽量使用基类对象进行编程。由于子类继承基类并实现其中的方法,程序运行时,子类对象可以替换基类对象,如果需要对类的行为进行修改,可以扩展基类,增加新的子类,而无须修改调用该基类对象的代码。

第4章-Java语言与面向对象作业习题与答案

第4章 Java语言与面向对象作业习题与答案 一、简答题 1.什么是对象?什么是类? 对象是一种抽象数据类型。它包含了事物的静态特征(属性)和动态特征(行为)两大特征。 类是一组同种对象的集合与抽象。即是具有相同属性和方法的一组对象集合。 2.Java语言的单继承是指什么? 一个类可以派生出多个子类,但子类只允许有一个父类,而不允许存在多个父类。 3.在一个共有类中的数据成员及方法成员的访问控制符为缺省,则这个类可供什么样的包引用? 当一个类的访问控制符为public共有时,表明这个类作为整体对其它类是可见和可引用的;但其数据成员和方法成员访问控制符为缺省时,它们只能被包中类(含当前类)引用。 4.抽象类的用途 (1)设计在更高的层次上进行,不考虑具体对象,从而大大简化了处理问题的复杂性; (2)设计出的类也具有更加良好的可扩展性。 5.什么是非静态的成员变量? 非静态成员即为实例成员变量(没有加static修饰的变量)。 6.异常Exception和错误Error有什么不同?Java如何处理它们? 答:错误通常是指程序本身存在非法情形,常常是因为代码存在问题而引起的,如造成系统崩溃、虚拟机粗错、动态失败等,这一类错误无法恢复或不可能捕获,并将导致应用程序中断。 异常表示另外一种“非同寻常”的错误。这种错误通常是不可预测,但可以被捕获且可以恢复。常见的异常情况包括存不足、找不到所需文件等。 对于错误,编程人员可以通过对程序进行更仔细的检查,以避免这种错误。 对于异常,可以使用捕获机制进行捕获,再编写出相应的处理程序。 7.简单述Java的异常处理机制。 答:Java采取“抛出—捕获”的方式,一旦一个异常想象产生,Runnable环境和应用程序会抛出各种标准类型和自己定义的异常,系统就可以捕获这些异常,并一定有相应的机制来处理它,确保不会产生司机、死循环或其它对操作系统的损害,从而保证了整个程序运行的安全性。 8.简单述throw语句和throws关键字之间的差别。 答:throw语句是在一个方法中用来直接抛出异常对象,其格式是: throw 异常对象; throws关键字是用一个方法声明首部,用来指出这个方法中可能产生若干种异常,其格式:[方法修饰符] 返回类型方法名(参数表)throws 异常类型表 { /*方法体*/ } 二、填空题 1.所有Java应用程序都必须包含的一个类方法是 main() 。 2.面向对象程序设计语言的三种重要特性是封装性、继承性和多态性。

《面向对象程序设计》期末复习题及答案2

面向对象程序设计期末复习指导—填空题 1. C++语言的编译单位是扩展名为__________的__________文件。 2.用于输出表达式值的标准输出流对象是_________。 3.当执行cin语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。 4. 一条表达式语句必须以______作为结束符。 5.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。 6.当使用_______保留字作为函数类型时,该函数不返回任何值。 7. 假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为__________和__________。 8. 十进制常数245对应的十六进制的C++表示为__________。 9. float和double类型的数据分别占用_________和________个字节。 10. 字符串”This\’s a book.\n”的长度为__________。 11. 假定x和y为整型,其值分别为16和5,则x%y和x/y的值分别为__________和__________。 12.假定x是一个逻辑量,则x && FALSE的值为__________。 13. 假定x是一个逻辑量,则x && !x的值为__________。 14. 数学算式 y x xy 3 的C++表达式为________________。 15.常数-4.205和6.7E-9分别具有__________和__________位有效数字。 16. 作为语句标号使用的C++保留字case和defaule只能用于________语句的定义体中。 17. 当在程序中执行到________语句时,将结束本层循环类语句或switch语句的执行。 18.在程序执行完________函数调用后,将结束整个程序的执行过程,返回到C++集成开发窗口。 19.存储字符’a’和字符串”a”分别需要占用________和________个字节。 20. 字符串”a:\\xxk\\数据”的长度为________。 21. 一个二维字符数组a[10][20]能够存储________个字符串,每个字符串的长度至多为________。 22. 若需要把一个字符串”aaa”赋值到字符数组a中,则需要执行________函数的调用来实现。 23.如果一个函数只允许同一程序中的函数调用,则应在该函数定义前加上__________C++保留字。 24. 在函数模板的参数中,用class修饰的参数称为__________参数。 25. 如果一个函数定义中使用了__________修饰,则该函数不允许被其它文件中的函数调用。 26.调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的__________。 27. C++程序运行时的内存空间可以分成全局数据区,堆区,栈区和__________。

面向对象试题(标准答案)

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++面向对象程序设计复习 试题类型1、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。15题,每小题2分,共30分) [主要从作业题目中抽出来] 2. 填空题。(10题,每小题3分,共30分) 3、阅读程序,写出程序运行结果。【也称计算题】(3题,每小题5分,共15分) 4、程序编制题【也称综合分析题】。(第1、2题每题8分,第3题9分,共 25分) 重点复习内容 打*号是重点,打▲号是编程题出题范围 * 基本概念,对象,消息,类。 面向对象系统特性,封装性,继承性,多态性。 *▲C++类的构成,类与对象,构造与析构,动态存储,类嵌套。 静态成员,对象数组,友元。 *函数重载。 运算符重载。 *引用定义与引用参数 * 基类与派生类的定义。 * 基类及派生类的访问权(含派生类对基类的访问、通过派生类对象对基类的访问)和初始化。

多继承与虚基类。 *多态性与虚函数。 纯虚函数、抽象类。 *▲函数模板。 *▲使用类来定义对象并在程序中的应用题型样题 填空题 1. 假定AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类的构造函数的次数为_________。 答案:10 2.可以用p.a的形式访问派生类对象P的基类成员a,其中a是_________。答案:公有继承的公有成员 3.能作为重载函数的调用的依据是_________。 答案:参数个数、参数类型 4.在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流是否结束状态的操作函数名称是_________ 答案:eof 5.函数重载是指_________。 答案:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 6.在派生类中重新定义虚函数时必须在_________ 方面与基类保持一致。 答案:参数个数 阅读程序例题【计算题】 1.分析以下程序的执行结果 #include class Sample

面向对象面试题

面向对象面试题 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/1a16811188.html,中的五个主要对象 Connection:主要是开启程序和数据库之间的连结。没有利用连结对象将数据库打开,是无法从数据库中取得数据的。这个物件在https://www.wendangku.net/doc/1a16811188.html, 的最底层,我们可以自己产生这个对象,或是由其它的对象自动产生。 Command:主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及呼叫存在数据库中的预存程序等。这个对象是架构在Connection 对象上,也就是Command 对象是透过连结到数据源。 DataAdapter:主要是在数据源以及DataSet 之间执行数据传输的工作,它可以透过Comm and 对象下达命令后,并将取得的数据放入DataSet 对象中。这个对象是架构在Command 对象上,并提供了许多配合DataSet 使用的功能。 DataSet:这个对象可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来。DataSet 的能力不只是可以储存多个Table 而已,还可以透过DataAdapter对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。DataSet 对象可以说是https://www.wendangku.net/doc/1a16811188.html, 中重量级的对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力;也就是说我们是将DataAdapter对象当做DataSet 对象以及数据源间传输数据的桥梁。 DataReader:当我们只需要循序的读取数据而不需要其它操作时,可以使用DataReader 对象。DataReader对象只是一次一笔向下循序的读取数据源中的数据,而且这些数据是只读的,并不允许作其它的操作。因为DataReader 在读取数据的时候限制了每次只读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很好。使用DataReader 对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。 https://www.wendangku.net/doc/1a16811188.html, 使用Connection 对象来连接数据库,使用Command 或DataAdapter对象来

面向对象期末测试题(带答案).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、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间

面向对象分析与及设计习题及答案

面向对象分析与及设计习题及答案 一、单项选择题 1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是(D)的 形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。 A. Simula67语言 B. Smalltalk语言 C. Java语言 D. 统一建模语言(UML)的标准 2. 面向对象的运动产生了多种面向对象的语言, 其中(C)是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。 A. Smalltalk B. Eiffel C. C++ D. Java 3.下列不属于面向对象技术的基本特征的是(B)。 A. 封装性 B. 模块性 C. 多态性 D. 继承性 4. 面向对象程序设计将描述事物的数据与(C) 封装在一起,作为一个相互依存、不可分割的整体来处理。 A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 5. 关于面向对象方法的优点,下列不正确的叙述是(C)。 A. 与人类习惯的思维方法比较一致 B. 可重用性好 C. 以数据操作为中心 D.可维护性好 6. (D)是从用户使用系统的角度描述系统功能的图形表达方法。 A. 类图 B. 对象图 C. 序列图 D. 用例图 7. (C) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图 和其他图的基础。 A.对象图 B. 组件图 C. 类图 D. 配置图 8.(D)描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之 间传递消息的时间顺序。 A.对象图 B. 协作图 C. 状态图 D. 序列图 9.(D)就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统 中软件和硬件的物理架构。 A. 组件图 B. 协作图 C. 状态图 D. 配置图 10. 使用UML进行关系数据库的(B)时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 业务Use Case模型设计 B. 逻辑数据模型设计 C. 物理数据模型设计 C. 物理实现设计 11.一个设计得好的OO系统具有(B) A. 低内聚、低耦合的特征 B. 高内聚、低耦合的特征 C. 高内聚、高耦合的特征 D. 低内聚、高耦合的特征 12.下面()不是UML的基本构成元素。(A) A. 控制语言 B. 基本构造块 C. 规则 D. 公共机制

成人教育 《面向对象程序设计》期末考试复习题及参考答案

面向对象程序设计复习题二 一、填空 1.程序的三种常见结构是、、,其中 结构是程序的默认结构。 2.同名方法给出不同的实现,并通过参数类型或个数进行区分,称 为。 3.和“继承”匹配的概念是。 4.由类构建对象的过程称为。 5.抽象类是含有的类。 6.实现软件复用有两种方式,分别为、、。 7.有定义const int *p,p称为。 8.通过继承产生的类称为。 9.virtual关键字在C++中有两个用处,分贝是,和。 10.方法重载和实现了多态性。 11.请给出C++外的另外一种支持面向对象设计语言。 12.类的三个要素是、、。 13.对象释放前执行的函数是。 二、名词解释 1、构造函数 2、对象 3、运算符重载 4、析构函数

5. 面向对象 6. 继承 三、简答 1.比较类和结构体? 2.重载的意义? 3.抽象类的作用和意义? 4.组合与继承的区别? 四、辩析 1.任何父类对象都可以被子类对象替代。 2.public修饰符号破坏了数据的开放性。 3.private继承方式不能产生子类。 4.不能实例化的类一定是抽象类。 五、综合回答 1.简述多态的实现机制。 2.谈谈多态的意义。 3.面向对象程序设计思想的优点和缺点。

面向对象程序设计复习题二答案一、填空 (1)顺序 (2)选择 (3)循环 (4)顺序 (5)函数重载 (6)抽象 (7)实例化 (8)纯虚函数 (9)继承 (10) 组合 (9)和(10)不区分顺序 (11)常量指针 (12)派生类 (13)虚函数 (14)虚拟继承 (13)和(14)不区分顺序 (15)覆盖 (16)Java或者C# (17)类的标识 (18)类的状态

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语句:()

面向对象分析与设计_期末复习_2017-2018-2

《面向对象分析与设计》期末复习 2017-2018学年-第2学期 1、题型介绍: 选择题20 * 1分= 20分 填空题5* 2分= 10分 简答题 4 * 7分= 28分 建模分析论述题4题(第1题10分,第2题8分,第3题8分,第4题16分,共42分)= 40分 2、选择题 1、()不是对象具有的特性。 A.标识 B.继承 C.顺序 D.多态性 2、封装是把对象的()结合在一起,组成一个独立的对象。 A.属性和操作 B.信息流 C.消息和事件 D.数据的集合 3、()不是面向对象的典型方法。 A.Coad& Yourdon 方法 B.维也纳方法 C.OMT方法 D.Booch方法 4、UML中有4种关系,分别是依赖、泛化、关联和() A.集成 B.合作 C.实现 D 抽象 5、下列关于状态图的说法中,正确的是() A.状态图是UML中对系统的静态方面进行建模的5种图之一。 B.状态图是活动图的一个特例,状态图中的多数状态是活动状态。 C.状态图是对一个对象的生命周期进行建模,描述对象在其生存期间的动态行为。 D.状态图强调对有几个对象参与的活动过程建模,而活动图更强调对单个反应型对象建模。 6、UML的()模型图由类图、对象图、包图、组件图、和部署图组成。 A.用例 B.静态 C.动态 D.系统。 7、UML的()模型图活动图、顺序图、状态图、写协作图组成。 A.用例 B.静态 C.动态 D.系统。 8、UML的最终产物就是最后提交的可执行的软件系统和() A.用户手册 B.类图 C.动态图 D.相应的软件文档资料

9、在UML的需求分析建模中,()模型图必须与用户反复交流并加以确认。 A.配置 B.用例 C.包 D.动态 10、下面不是用例之间主要关系的是() A.扩展 B.包含 C.依赖 D.泛化 11、对于一个电子商务网站而言,以下不适合作为用例的选项是() A.登录 B.预定商品 C.购物车 D.结账 12、UML的客户需求分析模型包括()模型、类图、对象图和活动图。 A.用例 B.静态 C.动态 D.系统 13、UML客户需求分析产生的用例模型描述了系统的() A.状态 B.体系结构 C.静态模型 D.功能要求 14、在UML的需求分析模型中,用例建模必须与()反复交流并加以确认。 A.软件生产商 B.用户 C.软件开发人员 D.问题领域的专家 15、在UML的需求分析建模中,对用例模型中的用例进行细化说明应使用() A.活动图 B.状态图 C.配置图 D.组件图 16、类图应该画在Rational Rose的()视图中。 A、Use Case View B、Login View C、Component View D、Deployment View 17、类通常可以分为实体类、()和边界类。 A 、父类B、子类C、控制类D、祖先类 18、对象特征的要素是()。 A、状态 B、行为 C、标识 D、属性 19、下列关于接口的关系说法不正确的是()。 A、接口是一种特殊的类 B、所有接口都是有构造型<>的类 C、一个类可以通过实现接口从而支持接口所指定的行为 D、在程序运行的时候,其他对象不仅需要依赖于此接口,还需要知道该类对接口实现的其他信息 20、下列关于类方法的声明,不正确的是()。 A、方法定义了类所许可的行动 B、从一个类创建的所有对象可以使用同一组属性和方法 C、每个方法应该有一个参数 D、如果在同一个类中定义了类似的操作,则它们的行为应该是类似的 21、UML的系统分析进一步要确立的3个系统模型是()、对象动态模型和系统功能模型。 A、数据模型 B、对象静态模型 C、对象关系模型 D、体系结构模型 22、UML的客户需求分析、系统分析和系统设计阶段产生的模型,其描述图符()。 A、完全相同 B、完全不同 C、不可以通用 D、稍有差异 23、类和对象都有属性,它们的差别是:类描述了属性的类型,而对象的属性必有()。 A、正负号 B、动作 C、具体值 D、私有成员 24、UML系统设计的一般步骤包括系统对象设计、系统体系结构设计和系统设计的()和审查等 A、建模 B、完善 C、优化 D、迭代 25、顺序图和协作图主要用于对用例图中()的建模,用它们来描述用例图的行为。

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. 一个类可以定义多个构造函数

面向对象编程练习题库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程序的最基本组成单位是( )。

面向对象设计期末练习题

1、在一个商品订货系统的分析中建立了如图所示的关联,它表示一个供货商可能向多个购货商供货,一个购货商也可购买多个供货商的商品。 (1)讨论这种多对多的关联将给实现带来什么问题。 (2)给出一种解决办法,画出修改后的结果。 2、简要介绍OOD 模型的四个组成部分,并讨论它们的作用。 3、在OOD 中为何有时要把多继承化为单继承?对于下图所示的多继承结构,采用整体-部分结构或者采用关联把它化为单继承,画出转化之后的结构。

4、某机械制造厂生产车床、刨床和钻床三种机床和一种起重机。每一种机床和起重机都装配一台电动机,而电动机分为同步电机和异步电机两类。画出一个类图表示以上各种事物以及它们之间的结构关系。 5、举出一个含有多继承的一般-特殊结构的例子,画出其中的每一个类和它们之间的结构连接符,并填写各个类的主要属性与操作。

12、提高性能的改进措施错误的是()。 A.调整对象的分布 B.减少保存中间结果的属性或类 C.合并通信频频的类 D.用聚合关系描述复杂类 1、请你描述项目开发过程中“分析与设计”的两种不同观点。 3、在OOD阶段,若选择Java语言进行编程,针对下面的类图进行调整,给出其中的两种方案。 6、一个银行业务系统采用如图琐事的配置图,则错误的是() A. 与GUI有关的类应该部署在Branch Client上 B. 这个图表示一个三层的体系结构,不管Branch Client、Financial App Server、Database Server是运行在同一台机器上还是在不同机器上 C. 为了系统的可伸缩性(scalability),与业务逻辑有关的对象应该部署在Financial App Server上 D. 为了系统的可伸缩性,与业务逻辑有关的对象应该部署在Branch Client上 15.在数据库设计的阶段开始考虑具体的数据库管理系统(DBMS)的特性。() A. 需求分析 B. 概念设计 C. 逻辑设计.D 物理设计 13、不是人机交互设计准则的是()。 A.易学、易用、操作方便。 B.尽量保持个性化。 C.及时提供有意义的反馈。 D.尽量减少用户的记忆。

面向对象考试题

第五章考试题 一、选择题:(每题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、运行成功,但不输出

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

共40道选择题,每题2.5分。多选题有错则全错,全对才满分. 面向对象部分测试题 1.下面描述函数重写错误的是C A.?要有子类继承或实现 ?B.?子类方法的权限必须大于等于父类的权限 C. 父类中被private权限修饰的方法可以被子类重写 D.?子类重写接口中的抽象方法,子类的方法权限必须是public的 2.关于封装下面介绍错误的是(D )。 A. 封装将变化隔离 B.?封装提高重用性。 C.?封装安全性 ?D. 只有被private修饰才叫做封装 3.试图编译运行下面的代码会发生什么情况D public class MyClass{ static int i; publicstaticvoid main(String[]args){System.out.println(i); } } ?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; // 名字 privateint health=0;//健康值 private String sex=null; //性别 publicvoid Penguin(){//是一般方法,不是构造方法 health = 10; ??sex = "雄"; ??System.out.println("执行构造方法。"); ?} public voidprint() { ??System.out.println("企鹅的名字是" +name + ?",健康值是"+ health + ",性别是"+ sex+"。"); ?} public staticvoidmain(String[] args){ ?Penguin pgn= new Penguin(); pgn.print(); } } A. 企鹅的名字是null,健康值是10,性别是雄。 B.?执行构造方法。 企鹅的名字是null,健康值是0,性别是null。 ?C.?企鹅的名字是null,健康值是0,性别是null。 D.?执行构造方法。 ?企鹅的名字是null,健康值是10,性别是雄。 6.class A { public int i = 10;?} class B extends A{

面向对象技术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,输出车辆的最终速度。

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

面向对象程序设计期末综合练习一(单选题) 单选题 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

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