面向对象技术引论练习题
- 格式:pdf
- 大小:63.95 KB
- 文档页数:1
面向对象考试题目和答案一、单项选择题(每题2分,共20分)1. 面向对象程序设计中,对象的状态由()来表示。
A. 属性B. 方法C. 消息D. 类答案:A2. 在面向对象程序设计中,封装的目的是()。
A. 隐藏对象的属性B. 隐藏对象的方法C. 隐藏对象的实现细节D. 隐藏对象的消息答案:C3. 面向对象程序设计中,继承的主要优点是()。
A. 重用代码B. 减少代码量C. 提高程序的可读性D. 所有以上选项答案:D4. 在面向对象程序设计中,多态性是指()。
A. 一个对象可以有多个类B. 一个类可以有多个对象C. 一个消息可以有多个行为D. 一个类可以有多个属性答案:C5. 在面向对象程序设计中,以下哪个不是类的组成部分()。
A. 属性B. 方法D. 函数答案:D6. 在面向对象程序设计中,以下哪个概念不是面向对象的核心概念()。
A. 封装B. 继承C. 多态D. 过程答案:D7. 在面向对象程序设计中,以下哪个概念是面向对象的核心概念之一()。
A. 函数B. 过程C. 消息D. 抽象8. 在面向对象程序设计中,以下哪个不是类的成员()。
A. 属性B. 方法C. 函数D. 消息答案:C9. 在面向对象程序设计中,以下哪个不是类的属性()。
A. 私有属性B. 保护属性C. 公共属性D. 全局属性答案:D10. 在面向对象程序设计中,以下哪个不是类的访问修饰符()。
B. 保护C. 公共D. 静态答案:D二、多项选择题(每题3分,共15分)1. 面向对象程序设计中,以下哪些是类的属性()。
A. 私有属性B. 保护属性C. 公共属性D. 全局属性答案:ABC2. 面向对象程序设计中,以下哪些是类的成员()。
A. 属性C. 函数D. 消息答案:ABD3. 面向对象程序设计中,以下哪些是类的访问修饰符()。
A. 私有B. 保护C. 公共D. 静态答案:ABC4. 面向对象程序设计中,以下哪些是面向对象的核心概念()。
面向对象练习题及答案一、用例图1.请就以下需求建立用例图:一个新的音像商店准备采用计算机系统向比较广泛的人群销售或租借录像带和光碟。
该音像商店将存有大约1000 盘录像带和500 张光碟,这些订购涉及多家订购商。
所有的录像带和光碟都有一个条码,可以使用条码扫描仪来支持销售和返还,客户会员卡也同时条码化。
客户可以预定录像带并在指定日期来取。
系统必须拥有灵活的搜索机制来回答客户的询问,包括关于该音像商店还没有进货的电影(但可能是已经请求订购了)。
评分标准:画图格式标准3 分,用例全面正确4 分,角色与用例之间的关系正确3 分2.试用用例图描述小型图书资料管理系统。
某学院打算开发一个小型图书资料管理系统MiniLibrary,该系统基于Internet实现教师和学生对各种图书资料的借阅、查询和管理。
图书管理员负责管理各种图书资料,查询图书资料信息,并进行图书的借阅管理。
注册用户可以通过Internet 随时查询图书资料信息和个人借阅情况,预订目前借不到的图书资料,并可以快捷地查找和浏览所需要的电子资料。
系统可以提供适当的浏览器供用户阅读电子文献资料。
3.试用用例图描述系统简介:航空公司为给旅客乘机提供方便,需要开发一个机票预定系统。
各个旅行社把预定机票的旅客信息输入到系统中,系统为旅客安排航班。
当旅客交付了预订金后,系统打印出取票通知和帐单给旅客,旅客在飞机起飞前一天凭取票通知和帐单到航空公司交款取票,系统核对无误即打印出机票给旅客。
此外航空公司为随时掌握各个航班飞机的乘载情况,需要定期进行查询统计,以便适当调整。
技术要求和限制条件(1)在分析系统功能时要考虑有关证件的合法性验证(如身份证、取票通知和交款发票)等。
(2)对于本系统还应补充一下功能:1)旅客延误了取票时间的处理2)航班取消后的处理4 .请就此需求建立功能模型:某报社采用面向对象技术实现报刊征订的计算机管理系统,该系统基本需求如下:报社发行多种刊物,每种刊物通过订单来征订,订单中有代码、名称、订期、单价、份数等项目,订户通过填写订单来订阅报刊。
面向对象测试题及答案一、选择题(每题2分,共20分)1. 面向对象编程(OOP)的核心概念不包括以下哪一项?A. 类B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. typeC. structD. interface3. 下列哪个选项不是Java中访问控制的关键字?A. publicB. privateC. protectedD. global4. 封装是面向对象编程的一个重要特性,它主要指的是:A. 将数据和操作数据的方法组合在一起B. 将所有数据都设为公开访问C. 只允许通过特定的方法访问数据D. 将数据和方法分离5. 在Java中,以下哪个不是构造方法的特点?A. 与类名相同B. 没有返回类型C. 可以重载D. 可以被继承6. 继承在面向对象编程中允许:A. 一个类只能继承一个类B. 一个类可以继承多个类C. 一个类可以继承多个接口D. 一个类可以同时继承多个类和接口7. 接口在Java中的主要作用是:A. 定义类B. 实现多继承C. 定义方法的实现D. 定义方法的签名8. 以下哪个是Java中实现多态的方式?A. 继承B. 接口C. 重载D. 重写9. 抽象类在Java中不能:A. 被实例化B. 包含抽象方法C. 包含具体方法D. 被继承10. 下列哪个不是Java集合框架中接口?A. ListB. SetC. MapD. Array二、简答题(每题5分,共30分)1. 简述面向对象编程的三大特性。
2. 解释什么是多态,并给出一个Java中多态的例子。
3. 什么是封装?封装在Java中是如何实现的?4. 什么是接口?接口和抽象类有什么区别?5. 什么是构造方法?构造方法的作用是什么?6. 什么是继承?继承在Java中是如何实现的?三、编程题(每题25分,共50分)1. 编写一个Java程序,定义一个名为`Car`的类,包含以下属性和方法:- 属性:品牌(String类型),颜色(String类型),速度(int 类型)- 方法:启动汽车(startCar),加速(accelerate),减速(decelerate)2. 在上述`Car`类的基础上,创建一个名为`ElectricCar`的子类,继承`Car`类,并添加一个额外的属性:电池电量(int类型),并重写`startCar`方法以显示电动汽车启动的信息。
面向对象练习题面向对象练习题面向对象编程是一种常用的编程范式,它将程序设计问题分解成一系列的对象,每个对象都有自己的属性和方法。
面向对象编程的核心思想是把现实世界中的事物抽象成程序中的对象,并通过对象之间的交互来解决问题。
为了提升对面向对象编程的理解和掌握,下面将给出一些面向对象编程的练习题。
1. 设计一个汽车类,要求具有以下属性和方法:- 属性:品牌、颜色、价格- 方法:启动、加速、刹车、熄火2. 设计一个学生类,要求具有以下属性和方法:- 属性:姓名、年龄、性别、成绩- 方法:学习、休息、考试、查看成绩3. 设计一个图书类,要求具有以下属性和方法:- 属性:书名、作者、出版社、价格- 方法:借阅、归还、查看借阅状态、查看图书信息4. 设计一个银行账户类,要求具有以下属性和方法:- 属性:账户名、账号、余额- 方法:存款、取款、查询余额、转账5. 设计一个矩形类,要求具有以下属性和方法:- 属性:宽度、高度- 方法:计算面积、计算周长、判断是否为正方形这些练习题涵盖了面向对象编程中常见的概念和操作。
通过解答这些题目,可以加深对面向对象编程的理解,并提升对类、对象、属性和方法的使用熟练度。
在解答这些题目时,可以先思考每个类应该具有哪些属性和方法,然后根据需求进行实现。
可以使用任何编程语言来完成这些练习题,但建议使用面向对象编程语言如Java、Python等。
除了以上的练习题,还可以尝试设计更复杂的类和对象,如实现一个电商平台的商品类、用户类和订单类,或者实现一个图形界面的计算器类。
通过不断练习和实践,可以逐渐掌握面向对象编程的技巧和思维方式。
总之,面向对象编程是一种重要的编程范式,掌握它对于提升编程能力和解决实际问题非常有帮助。
通过解答上述练习题,可以加深对面向对象编程的理解和掌握,为以后的编程工作打下坚实的基础。
希望大家能够充分利用这些练习题,不断提升自己的编程能力。
java面向对象练习题# Java面向对象练习题一、选择题1. 在Java中,以下哪个关键字用于定义类的访问权限为“仅包内可见”?- A. public- B. private- C. protected- D. 默认(不写访问修饰符)2. 以下哪个是Java中的构造方法?- A. 与类名相同,没有返回类型的方法- B. 与类名不同,没有返回类型的方法- C. 与类名相同,有返回类型的方法- D. 与类名不同,有返回类型的方法3. 在Java中,哪个关键字用于实现类的继承?- A. extends- B. implements- C. override- D. abstract4. 以下哪个是Java中类的成员变量?- A. 局部变量- B. 实例变量- C. 静态变量- D. 方法参数5. 以下哪个是Java中的多态性?- A. 接口- B. 继承- C. 封装- D. 抽象类二、简答题1. 解释Java中的封装性,并给出一个封装的类的例子。
2. 描述Java中接口和抽象类的区别。
3. 什么是Java中的继承?请举例说明如何使用继承。
三、编程题1. 创建一个名为`Person`的类,包含姓名(name)、年龄(age)和性别(gender)三个属性。
为每个属性提供getter和setter方法。
2. 编写一个名为`Student`的类,它继承自`Person`类,并添加一个名为`studentID`的属性。
为`studentID`提供getter和setter方法,并重写`toString`方法以返回学生的详细信息。
3. 创建一个接口`Movable`,包含一个方法`move()`。
然后创建一个名为`Car`的类实现该接口,并提供`move`方法的具体实现。
四、综合应用题1. 设计一个简单的银行账户系统,包含以下类:- `Account`:基本账户类,包含账户ID、账户余额和存款(deposit)与取款(withdraw)方法。
面向对象练习题一、选择题1. 在面向对象编程中,以下哪个概念不是面向对象的核心概念?A. 封装B. 继承C. 多态D. 函数2. 以下哪个选项是Java语言中实现多态的方式?A. 通过继承B. 通过接口C. 通过重载D. 通过重写3. 在面向对象编程中,一个类可以有多少个父类?A. 0个或1个B. 1个C. 多个D. 无数个4. 以下哪个关键字在Java中用于定义一个类?A. structB. classC. interfaceD. enum5. 以下哪个是Java中创建对象的关键字?A. newB. createC. instanceD. object二、填空题6. 在面向对象编程中,______ 是指将数据和操作这些数据的方法结合在一起。
7. 一个类可以包含______ 和______ 两种成员。
8. 封装的目的是______ 数据,并对外部隐藏内部细节。
9. 继承可以使得子类获得父类的______ 和______。
10. 多态性允许不同类的对象对同一消息做出响应,但具体______ 取决于对象的实际类型。
三、简答题11. 简述面向对象编程的三大特性,并举例说明它们在实际编程中的应用。
12. 解释什么是接口,并说明接口与抽象类的区别。
13. 描述如何使用Java实现一个简单的类,并说明如何创建该类的实例。
四、编程题14. 编写一个Java类`Person`,包含属性`name`和`age`,以及一个方法`introduce()`,该方法输出个人信息。
15. 假设你已经有一个名为`Animal`的抽象类,它包含一个抽象方法`makeSound()`。
编写一个名为`Dog`的类,继承自`Animal`,并实现`makeSound()`方法,使得`Dog`对象调用该方法时输出"Woof!"。
16. 创建一个Java程序,包含一个名为`Vehicle`的类,它有一个属性`speed`和一个方法`increaseSpeed(int increment)`。
面向对象技术练习试卷1(题后含答案及解析) 题型有:1. 选择题选择题(每小题1分,共75分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。
1.在关于用例(use case)的描述中,错误的是______。
A.用例将系统的功能范围分解成许多小的系统功能陈述B.一个用例代表了系统的一个单一的目标C.用例是一个行为上相关的步骤序列D.用例描述了系统与用户的交互正确答案:D解析:用例(use case)用来描述系统在对事件做出响应时所采取的行动,即它确定了一个与系统参与者进行交互、并由系统执行的动作序列。
可见,一个用例本身并不是一个功能需求,它代表了系统的一个单一的目标,是一个行为上相关的步骤序列。
本试题选项D所描述的范围太广,不够准确。
在UML规范中,参与者是指系统所涉及到的人,或者是用户在本系统中扮演的角色。
一个参与者总是在系统的自动化边界之外。
解答此类试题的一般思路是理解用例的基本概念。
知识模块:面向对象技术2.当______时,用例是捕获系统需求最好的选择。
A.系统具有很少的用户B.系统具有很少的接口C.系统算法复杂,功能单一D.系统有很多参与者正确答案:D解析:用例(use case)描述了一个与系统参与者进行交互、并由系统执行的动作序列。
它是开发者与用户交流的工具,可用来定义系统的边界。
当所开发的系统有很多参与者时,用例是捕获系统需求的最好选择。
解答此类试题的一般思路是理解用例的应用场合。
知识模块:面向对象技术3.现有两个用例UC1和UC2。
其中UC2是一个完整的用例,可被实例化,而UC1需要UC2中的事件流才可被实例化,且UC1指定了使用UC2的精确位置,则UC1和UC2间的关系是“______”。
A.includeB.extendC.generalizeD.call正确答案:A解析:注意本试题描述中的用词“精确位置”,说明用例UC1对用例UC2的实现很重要。
(完整版)武汉理工大学《面向对象技术及应用试题》(带答案)《面对对象技术及应用》试题一、多选题:下列题中有一个或多个正确答案,请将正确答案的编号填在括号里。
(每题2分,共40分)1.状态图中常用的动作有(ABC )A.动作B.入口动作C.出口动作D.触发动作2.UML中表示类之间“关系”的视图有(ABC )A.关联B.泛化C.依靠D.实现3.用例描述中包含的内容有(ABCD )A.发起用例的参加者B.用例的前置条件C.用例的后置条件D.从用例中获益的参加者4.类之间的关系包括(BCD )A.链B.继承C.多重性D.聚拢5.完整的类可视化表示包括元素(ABC )A.职责和约束B.属性C.操作D.接口6.在UML提供的图中,用于描述系统与外部系统及用户之间的交互的是( D )A)用例图B)类图C)对象图D)部署图7.UML背后的两个分量级概念是。
(BD )A)类B)用例C)面对过程D)面对对象8.用例是从____的观点对系统行为的一个描述。
( A )A)用户B)类C)系统D)对象9.关于用例对于系统开发来说的存在价值,以下说法正确的是。
(ABD )A)便于从用户的观看角度收集系统需求B)使系统更符合用户的需求C)禁止了分析员与用户的沟通D)便于分析员与客户和用户沟通10.以下哪些标记符在活动图中存在。
(BC )A)大事触发器B)分叉与汇集C)泳道D)决策点11.用UML建立业务模型是理解企业业务过程的第一步。
业务人员饰演业务中的角XXX及其交互方式,表示企业业务的工作流。
这种图显示出工作流中的步骤、决策点,以及完成每一步骤的角群和对象。
这种图是以下哪种图。
( A )A)活动图B)交互图C)用例图D)状态图12.面对对象理论中,对象之间发送信号,在UML状态图里就是。
( B )A)入口动作B)大事。
《面向对象技术引论》复习题一、概念与术语1. 对象:在现实世界中,对象定义为:问题的概念和抽象的或具有明确边界和意义的事物;在数据世界中,对象定义为:一组数据以及施加于这组数据上的一组操作;从系统的观点出发,我们可以给对象作如下定义:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位(单元),一个对象是由一组属性和对这组属性进行操作的一组服务构成的。
2.持久对象:生存期可以超越程序的执行时间而长期存在的对象称为持久对象。
换句话说:一个对象在程序运行结束后仍继续存在,则称该对象是持久的。
2.主动对象:主动对象是一组属性和一组操作(服务)的封装体,其中至少有一个操作不需要接收消息就能主动执行(称为主动服务)。
3.被动对象:被动对象(Passive object)是指其内部的操作需要通过外部消息驱动才能执行的对象。
可以看出被动对象必须工作在消息驱动环境中。
4.类:定义1 一组具有相同性质(属性和操作)的对象的抽象。
定义2 类是对一组具有相同属性、操作、关系和语义的对象的描述。
定义3 具有相同属性和容许操作的一组对象的一般描述称为类。
5.主动类:主动类的对象至少拥有一个进程或线程,因此它能够自主执行(能够启动控制活动)。
注意:主动类的对象所描述的元素的行为与其他元素的行为并发,这是它与一般类的唯一区别。
6.接口:接口是描述一个类或构件的一个服务的操作集。
因此,接口描述元素的外部可见行为。
接口描述了一组操作的规格,而不是操作的实现。
图形上,用一个带有名称的圆表示接口。
7.用况:用况是对一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者有价值而且可观察的结果。
用况用于对系统语境和系统需求建模。
图形上,用一个包含名称的实线椭圆表示用况。
8.协作:协作定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构成的一个群体,这些协作行为大于所有元素的各自行为的综合。
因此协作有结构、行为和维度。
面向对象技术引论练习题1、给出下列概念的定义,并说明它们在软件开发中的作用:(1)对象 (2)类 (3)属性 (4)服务 (5)继承(6)封装 (7) 关联 (8)聚合 (9) 消息 (10)抽象2、介绍面向对象方法的主要思想,论述该方法为什么有利于改进软件开发。
3、以你所学习的OOA方法为背景,阐述OOA的主要过程与策略。
4、介绍在OOA和OOD模型中对下述概念(建模元素)的表示法。
分别画出一般的图形表示,加以必要的解释,并给出一个例子。
(1)类极其属性与服务(2)一般-特殊结构(包括多态性的表示)(3)整体-部分结构(包括多重性的表示)(4)实例连接(包括多重性的表示)(5)消息连接5、(选做)用一幅图表示OOA的主要活动以及它们之间的关系。
6、针对建立类图的活动回答下述问题(从5个小题中选做一个):(1)为了发现候选的对象,应考虑问题域中哪些事物?如何判断一个候选的对象是否有用?(2)如何决定在各类对象中应定义哪些属性服务?(3)考虑哪些问题有助于建立一般-特殊结构?审查中应对哪些不合适的情况进行调整?(4)考虑哪些问题有助于建立整体-部分结构?审查中应对哪些不合适的情况进行修改?(5)如何决定在各个对象类之间应建立哪些实例连接和消息连接?7、(选做)在一个商品订货系统中有供货商和购货商两类对象。
一个供货商或购货商都可能与多方签订供需合同。
(1)画出这两种类及对象以及它们之间的实例连接。
(2)讨论这样的实例连接将给实现带来什么困难。
(3)给出一种解决办法,画出修改后的结果。
8、在OOD中用一些相对独立的组成部分隔离实现条件对整个模型的影响,这种设计方法可带来什么好处?简要介绍按此方法建立的OOD模型的每个组成部分及其作用。
(9—13题选做一个)9、在OOD中要对OOA模型做哪些方面的调整使之成为OOD模型的问题域部分?10、在OOD中为何有时要把多继承化为单继承?通过一个具体例子说明如何使用整体-部分结构把多继承化为单继承,分别画出转化前后的结构。
面向对象试题(标准答案)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() 100B() 200B.A() 200B() 200C.B() 200A() 100D.B() 200A() 2002.下列说法正确的是(D )A.所有类都必须定义构造方法(构造器)B.构造方法必须初始化类的所有数据成员C.子类定义了构造器后,不再调用父类的构造器D.构造方法可以访问类的非静态成员3.在Java中,哪个关键字使类不能派生子类?, (A )A : finalB : publicC : privateD : native4.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()5.下列哪些叙述是正确的(CD )A.在一个类中,方法不能与类名相同B.a bstract 可以修饰属性、方法和类C.实例方法可直接调用本类的static方法和非static方法D.static方法不能调用非static方法6.以下说法正确的是(ABC)A.子类不能继承父类的构造方法B.子类的构造方法可以访问父类的构造方法C.子类不可直接访问父类的私有属性D.子类可以重写父类的所有方法7.分析选项中关于Java中this关键字的说法正确的是( A )A.this关键字是在对象内部指代自身的引用B.this关键字可以在类中的任何位置使用C.this关键字和类关联,而不是和特定的对象关联D.同一个类的不同对象共用一个this8 下列关于继承的说法哪个是正确的?( B )A.子类只继承父类public方法和属性B.子类继承父类的非私有属性和方法C.子类只继承父类的方法,而不继承父类的属性D.子类将继承父类的所有属性和方法9.在Java中,关于final关键字的说法正确的是(AC )A.final修饰的变量,一旦赋值就不能被更改B.final修饰的类只能被一个子类继承C.final修饰的方法,不能在子类中被覆盖D.final修饰的方法,不能被子类继承10. String s=new String(“xyz”)创建了几个对象(C);A. 0B. 1C. 2D. 311.下列语句的序列执行后,k的值是( B )int m=3,n=6,k=0;While((m++)<(--n))++k;A.0B.1C.2D.312.下列哪一项不是面向对象的典型特征(D )A.封装 B.继承C. 多态D.抽象13.(多选)在java中,关于构造方法,下列说法正确的是(ABD )A.构造方法的名称必须与类名相同B.构造方法可以带参数C.构造方法不可以重载D.构造方法绝对不能有返回值14.下面关于变量的说法正确的是(BC )A.实例变量可以通过类名直接调用B.类变量可以通过类名直接调用C. Java中的参数传递都是值传递D. 在不同的作用域不能定义相同的变量15.下列代码有编译错误的是第(C )行1)public class Test{2)public static void main(String[] args){3)int[] arr1 = new int[12];4)char[] arr2 = new char[];5)int[] arr3 = {};6)Object[] obj = new Object[4];7)Object obj1 = new object[9];8)}9)}A.5)B.5) 7)C.4) 7)D.4)16.下列代码的运行结果是(A )public class Test{private int num;private static Test test;public Test(int num){this.num = ++ num;}static{int num = 16;test = new Test(num);++ test.num;}public static void main(String[] args){ test = new Test(13);System.out.println(test.num);}}A.14B.15C.16D.1717.仔细分析下列代码,请指出错误的行(D )。
●下面关于面向对象方法中消息的叙述,不正确的是____(2)__。
(2)A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息C. 应用程序之间可以相互发送消息D.发送与接收消息的通信机制与传统的子程序调用机制不同正确答案:B【解析】在系统中既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此的通信,这样的方法才称为"面向对象的方法"。
●面向对象技术中,对象是类的实例。
对象有三种成份:____(3)____、属性和方法(或操作)。
(3) A. 标识B. 规则C. 封装D. 消息正确答案:A解析:对象有三种成份:标识(对象名)、属性和方法(或操作)。
●在面向对象技术中,类属是一种__(1)__机制。
一个类属类是关于一组类的一个特性抽象,它强调的是这些类的成员特征中与__(2)__的那些部分,而用变元来表示与__(3)__的那些部分。
(1)A.包含多态B.参数多态C.过载多态D.强制多态(2)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关(3)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关解析:在面向对象技术中,对象在收到信息后要予以响应。
不同的对象收到同一消息可产生完全不同的结果,这一现象称为多态。
多态有多种不同的形式,其中参数多态和包含多态称为通用多态,过载多态和强制多态成为特定多态。
参数多态应用比较广泛,被称为最纯的多态。
这是因为同一对象、函数或过程能以一致的形式用于不同的类型。
包含多态最常见的例子就是子类型化,即一个类型是另一类型的子类型。
过载多态是同一变量被用来表示不同的功能,通过上下文以决定一个类所代表的功能。
即通过语法对不同语义的对象使用相同的名,编译能够消除这一模糊。
强制多态是通过语义操作把一个变元的类型加以变换,以符合一个函数的要求,如果不做这一强制性变换将出现类型错误。
面向对象技术练习试卷2(题后含答案及解析) 题型有:1. 选择题选择题(每小题1分,共75分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。
1.根据如图1-7所示的UML类图可知,类Car和类Boat中的move( )方法______。
A.引用了类Transport的move( )方法B.重置了类Transport的move( )方法C.是类Transport的move( )方法的聚集D.是类Transport的move( )方法的泛化正确答案:B解析:在UML类图中,“”表示其相联的两个类之间存在泛化关系,即在图1-7中显示了一个继承结构:类Transport为基类,其子类分别为类Car和类Boat。
同是注意到,在图1-7中的类Transport的名字之下有一个标识<>。
该标识用于说明该类是一个抽象类,类中的方法move( )必须在子类中重新定义的纯虚拟函数。
由图1-7中可以看出,在两个子类中都定义了函数原型完全相同的move( )方法。
在面向对象程序设计中,使用动态多态一一重置(overriding)时需满足3个条件:①类之间具有继承关系、②基类中至少定义一个纯虚拟函数、③在子类中重新定义这个纯虚拟函数。
因此,图1-7给出的UML 类图结构满足了重置的3个条件,说明子类Car和子类Boat中的move( )方法重置了基类Transport的move( )方法。
知识模块:面向对象技术2.用UML建立业务模型是理解企业业务过程的第一步。
业务人员扮演业务中的角色及其交互方式,例如长途汽车站的售票员是业务人员,大型商场的销售员也是业务人员,他们之间的关系是______。
A.AggregationB.CompositionC.GeneralizationD.Association正确答案:C解析:选项A的“聚集关系(Aggregation)”是关联关系(Association)的一种特例,它代表两个类之间的整体和局部关系。
面向对象技术试卷一、选择题(共10题,每题2分,共20分)1.下面哪个选项不是面向对象编程的特征? A. 封装性B. 继承性C. 多态性D. 属性性2.在Java中,如何创建一个对象? A. new Object(); B. create Object(); C. Object.create(); D. Object.new();3.下列哪个关键字用于定义类的成员变量? A. this B. super C. class D. var4.哪个选项描述了继承的正确定义? A. 子类继承父类的属性和方法 B. 子类继承父类的方法,但不继承属性 C. 子类继承父类的属性,但不继承方法 D. 子类不继承父类的属性和方法5.在Java中,接口是用来实现什么目的的? 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. 对象的身份二、判断题(共10题,每题2分,共20分)1.在面向对象编程中,类是对对象的抽象和泛化,描述了对象的状态和行为。
–[ ] 对–[x] 错2.封装是面向对象编程的特征之一,它将数据和操作封装在一个对象中,外部无法直接访问和修改对象的数据。
–[x] 对–[ ] 错3.在Java中,一个类可以同时实现多个接口。
java面向对象试题及答案一、单选题(每题2分,共10分)1. 在Java中,下列哪个关键字用于定义一个类?A. classB. interfaceC. structD. enum答案:A2. Java中,哪个关键字用于定义一个私有方法?A. privateB. publicC. protectedD. default答案:A3. 下列哪个选项不是Java中的访问修饰符?A. privateB. publicC. protectedD. static答案:D4. 在Java中,哪个关键字用于实现多态?A. abstractB. finalC. staticD. interface答案:A5. 在Java中,下列哪个关键字用于定义一个接口?A. classB. interfaceC. structD. enum答案:B二、多选题(每题3分,共15分)1. 在Java中,下列哪些关键字用于定义一个类的方法?A. publicB. privateC. protectedD. static答案:A, B, C, D2. 下列哪些关键字用于实现类的继承?A. extendsB. implementsC. abstractD. final答案:A3. 在Java中,下列哪些关键字用于定义类的成员变量?A. privateB. publicC. protectedD. static答案:A, B, C, D4. 下列哪些关键字用于定义类的构造方法?A. constructorB. thisC. newD. super答案:B, D5. 在Java中,下列哪些关键字用于定义接口的常量?A. privateB. publicC. staticD. final答案:B, C, D三、判断题(每题2分,共10分)1. Java中,一个类可以继承多个类。
(错误)2. Java中,接口可以继承接口。
(正确)3. Java中,一个类可以继承多个接口。
一、选择题(20分,共10题,每题2分)1. 关于方法论与方法的关系的描述错误的是(B )A.方法论是一种观点,是一个有理论意义的架构。
B.方法包括理论与模型两个重要的方面。
C.面向对象的方法论的重要观点是:封装、数据隐藏、多态、关系等。
D.不同的方法可以属于同一种方法论。
2.关于信息隐藏的描述错误的是(C)A.信息隐藏是指对象在与外界的交互中,尽可能地隐藏对象的内部细节,仅保留有限的对外接口与外部进行联系。
B.信息隐藏既可以隐藏属性,也可以隐藏操作。
C.一个对象信息隐藏的内容对任何对象都是一样的,并不随与之交互的对象的不同而改变。
D.信息隐藏的原则是公开不变的操作,隐藏易变的操作。
3.关于多态的描述正确的是(D)A.多态是指在聚合关系中的各个类中名字相同的属性和操作具有不同的意义。
B.多态的实现机制是编译时静态链接。
C.函数名重载(overload) 会导致多态现象出现。
D.多态可实现接口复用,节省大量的编码工作量.4.关于重载(overload)与覆盖(override)的说法正确的是(D)。
A.如果子类中的成员函数f(x)具有父类中成员函数f(x)相同的函数名,那么称子类对父类的f(x)进行了覆盖。
B.如果子类中的成员函数f(x)具有父类中成员函数f(x)相同的基调,那么称子类对父类的f(x)进行了重载.C.重载导致多态,覆盖与多态无关。
D.覆盖由动态链接实现,重载由静态链接实现。
5.关于用况图与类图的描述正确的是( D)。
A.参与者是用况图中的元素,类是类图中的元素,二者没有关系。
B.用况图中用况应全部识别为类图中的同名类。
C.用况图中参与者应全部识别为类图中的同名类.D.用况图中参与者有可能识别为类图中的主动类6.关于状态图的陈述正确的是(C)A.一个对象自身的属性值变化不能作为其状态图中的事件.B.历史状态是指一个对象以前曾经所处的状态集合。
C.动作是在状态内或在转化时所做的操作,是原子的和即时的。
java面向对象试题及答案# Java面向对象试题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?- A. class- B. interface- C. enum- D. package答案:A2. 以下哪个是Java中的继承特性?- A. 一个类可以继承多个类- B. 类可以继承接口- C. 接口可以继承类- D. 接口可以继承多个接口答案:D3. 以下哪个是Java中封装的体现?- A. 使用public关键字- B. 使用private关键字- C. 使用static关键字- D. 使用final关键字答案:B4. 在Java中,哪个关键字用于实现多态?- A. abstract- B. final- C. override- D. implements答案:C5. 以下哪个是Java的构造方法的特点?- A. 可以有返回类型- B. 可以有多个同名的构造方法- C. 必须有返回类型- D. 必须与类名相同答案:D二、简答题1. 简述面向对象编程的三大特性,并给出Java中的例子。
面向对象编程的三大特性是封装、继承和多态。
- 封装:封装是将对象的实现细节隐藏起来,只暴露出一个可以被外界访问的接口。
例如,在Java中,可以通过使用private关键字来隐藏类的成员变量,只通过public方法来访问这些变量。
- 继承:继承允许新创建的类(子类)继承现有类(父类)的属性和方法。
例如,如果有一个`Animal`类,可以创建一个`Dog`类继承`Animal`类。
- 多态:多态允许同一个接口接受不同的数据类型。
在Java中,可以通过重写父类的方法来实现多态。
例如,`Animal`类有一个`makeSound()`方法,而`Dog`类可以重写这个方法来发出狗的叫声。
2. 解释Java中的接口和抽象类的区别。
接口和抽象类都是Java中实现抽象化的方式,但它们有以下区别: - 接口可以包含抽象方法和默认方法,但不能有具体实现。
《面向对象技术(jìshù)引论》复习题一、概念(gàiniàn)与术语1. 对象(duìxiàng):在现实世界中,对象定义为:问题的概念和抽象的或具有明确边界(biānjiè)和意义的事物;在数据世界中,对象定义为:一组数据以及(yǐjí)施加于这组数据上的一组操作;从系统的观点出发,我们可以给对象作如下定义:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位(单元),一个对象是由一组属性和对这组属性进行操作的一组服务构成的。
2.持久对象:生存期可以超越程序的执行时间而长期存在的对象称为持久对象。
换句话说:一个对象在程序运行结束后仍继续存在,则称该对象是持久的。
2.主动对象:主动对象是一组属性和一组操作(服务)的封装体,其中至少有一个操作不需要接收消息就能主动执行(称为主动服务)。
3.被动对象:被动对象(Passive object)是指其内部的操作需要通过外部消息驱动才能执行的对象。
可以看出被动对象必须工作在消息驱动环境中。
4.类:定义1 一组具有相同性质(属性和操作)的对象的抽象。
定义2 类是对一组具有相同属性、操作、关系和语义的对象的描述。
定义3 具有相同属性和容许操作的一组对象的一般描述称为类。
5.主动类:主动类的对象至少拥有一个进程或线程,因此它能够自主执行(能够启动控制活动)。
注意:主动类的对象所描述的元素的行为与其他元素的行为并发,这是它与一般类的唯一区别。
6.接口:接口是描述一个类或构件的一个服务的操作集。
因此,接口描述元素的外部可见行为。
接口描述了一组操作的规格,而不是操作的实现。
图形上,用一个带有名称的圆表示接口。
7.用况:用况是对一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者有价值而且可观察的结果。
用况用于对系统语境和系统需求建模。
图形上,用一个包含名称的实线椭圆表示用况。
1998级本科生“面向对象技术”期末试题 2001年6月
姓名____________ 学号______________ 单位_____________ 分数______________
1、(20分)给出下列概念的定义:
(1)对象 (2)类 (3)属性 (4)操作 (5)继承
(6)封装 (7) 关联 (8)聚合 (9) 消息 (10)抽象
2、(20分)在面向对象的分析与设计中,类图、包图、用况图、顺序图、及模型
规约分别起到什么作用?
3、(10分)举出一个含有多继承的一般-特殊结构的例子,画出其中的每一个类和
它们之间的结构连接符,并填写各个类的主要属性与操作。
4、(10分)在进行面向对象的分析时,考虑哪些情况有助于发现整体-部分结构?
(列举各种情况,例如:“物理上的整体事物和它的组成部分”)。
5、(10分)某机械制造厂生产车床、刨床和钻床三种机床和一种起重机。
每一种
机床和起重机都装配一台电动机,而电动机分为同步电机和异步电机两类。
画出一个类图表示以上各种事物以及它们之间的结构关系。
6、(10分)针对下表中列出的OOA/OOD模型成分,填写C++语言中可实现这些成
分的语言成分。
模型成分 C++语言成分模型成分 C++语言成分对象一般-特殊结构
类整体-部分结构
属性关联
操作消息
7、(10分)右边的类图表明,某
计算中心的计算机分为客户
机和服务器两类,其中两个
关联分别表明每个系统管理
员负责管理哪些计算机和每
台客户机供哪些用户使用。
试在图中填写表示关联的属
性并说明其作用。
8、(10分)把一般-特殊结构映射为数据库中的表有几种方法?举一个例子,分别
说明两种策略。