面向对象程序设计教程(c++语言描述)第一章课后习题解题

一、 名词解释
抽象 封装 消息
【问题解答】
面向对象方法中的 抽象是指 对具体问题(对象)进 行概括,抽出一类对象的公共性质并加以描述的过 程。
面向对象方法中的 封装就是 把抽象出来的对象的 属性和行为结合成一个独立的单位,并尽可能隐蔽 对象的内部细节。
消息是 面向对象程序设计用来描述对象之间通信 的机制。一个消息就是一个对象要求另一个对象实 施某种操作的一个请求。
二、 填空题
(1) 目前有 面向过程的结构化程序设计方法 和 面 向对象的程序设计方法 两种重要的程序设计方法。 (2) 结构化程序设计方法中的模块由 顺序、选择 和 循环 3种基本结构组成。
(3) 在结构化程序设计方法中,程序可表示为 程 序 =数据结构 +算法 ; 而面向对象的程序设计方法, 程序可表示为 程序 =对象 +消息。
(4) 结构化程序设计方法中的基本模块是 过程 ; 而面向对象程序设计方法中的基本模块是 类 。 (5) 面向对象程序设计方法具有 抽象性 、 封装性 、 继承性 和 多态性 等特点。
三、 选择题(至少选一个,可以多选)
(1) 面向对象程序设计着重于( B )的设计。 A. 对象 B. 类 C. 算法 D. 数据
(2) 面向对象程序设计中,把对象的属性和行为 组织在同一个模块内的机制叫做( C ) 。
A. 抽象 B. 继承 C. 封装 D. 多态 (3) 在面向对象程序设计中,类通过( D ) 与外界发生关系。
A. 对象 B. 类 C. 消息 D. 接口 (4) 面向对象程序设计中,对象与对象之间的通 信机制是( C ) 。
A. 对象 B. 类 C. 消息 D. 接口 (5) 关于 C++与 C 语言的关系的描述中, ( D ) 是错误的。
A. C语言是 C++的一个子集
B. C语言与 C++是兼容的
C. C++对 C 语言进行了一些改进
D. C++和 C 语言都是面向对象的 【结果分析】
C 语言是面向过程的。 C++语言是一种经过改进的更 为优化的 C 语言,是一种混合型语言,既面向过程 也面向对象。
(6) 面向对象的程序设计将数据结构与( A ) 放在一起,作为一个相互依存、不可分割的整体来 处理。
A. 算法 B. 信息 C. 数据隐藏 D. 数据抽象 (7) 下面( A )不是面向对象系统所包含的 要素。
A. 重载 B. 对象 C. 类 D. 继承
【结果分析】
面向对象 =对象 +类 +继承 +消息 +多态
(8) 下面说法正确的是( BC ) 。
A. 将数据结构和算法臵于同一个函数内,即为数 据封装
B. 一个类通过继承可以获得另一个类的特性
C. 面向对象要求程序员集中于事物的本质特征, 用抽象的观点看待程序
D. 同一消息为不同的对象接受时,产生的行为是 一样的,这称为一致性
【结果分析】
面向对象程序设计方法具有抽象性、封装性、继承 性和多态性等特点。将数据结构和算法臵于同一个 类内,即为数据封装。同一消息为不同的对象接受 时,产生的行为可能是不一样的,这称为多态性。 (9) 下面说法正确的是( AD ) 。
A. 对象是计算机内存中的一块区域,它可以存放 代码和数据
B. 对象实际是功能相对独立的一段程序
C. 各个对象间的数据可以共享是对象的一大优点
D. 在面向对象的程序中,对象之间只能通过消息 相互通信
【结果分析】
对象是计算机内存中的一块区域。在对象中,不但 存有数据,而且存有代码,使得每个对象在功能上 相互之间保持相对独立。对象之间存在各种联系, 但它们之间只能通过消息进行通信。
四、 判断题
(1) 在高级程序设计语言中,一般用类来实现对 象,类是具有相同属性和行为的一组对象的集合, 它是创建对象的模板。 (√ )
(2) C++语言只支持面向对象技术的抽象性、封 装性、继承性等特性,而不支持多态性。 (×)
【结果分析】
C++语言不仅支持面向对象技术的抽象性、封装性、 继承性等特性,而且支持多态性。
(3) 面向对象程序设计中的消息应该包含“如何 做”的信息。 (×)
【结果分析】
消息是面向对象程序设计用来描述对象之间通信 的机制。 向对象 “发送消息” 只需告诉对象做什么, 对象根据这个消息决定如何做。
(4) 一个消息只能产生特定的响应效果。 (×) 【结果分析】
当一个对象发出消息时,由于接收对象的类型可能 不同,所以,它们可能做出不同的反应。这样,一 个消息可以产生不同的响应效果,这种现象叫做多 态。
(5) 类的设计和类的继承机制实现了软件模块的 可重用性。 (√ )
(6) C++语言和 Java 语言均不是一个纯正的面向 对象的程序设计的语言。 (×)
【结果分析】
Java 语言是一个纯正的面向对象的程序设计语言。 (7) 学习 C++语言是学习面向对象的程序设计方 法的唯一途径。 (×)
【结果分析】
程序设计方法是独立于具体程序设计语言的一种 技术,学习 C++语言是学习面向对象程序设计方法 的重要途径之一。
(8) 在 C++语言中,类是支持数据封装的工具。 (√ )
五、 简答题
(1) 什么是结构化程序设计方法?它有哪些优点 和缺点?
【问题解答】
结构化程序设计方法着眼于系统要实现的功能,从 系统的输入输出出发,分析系统要做哪些事情,进 而考虑如何做这些事情,自顶向下地对系统的功能 进行分解,来建立系统的功能结构和相应的程序模 块结构,有效地将一个较复杂的程序系统设计任务 分解成许多易于控制和处理的子任务,便于开发和 维护。
随着程序规模与复杂性的增长,这种面向过程的结 构化程序设计方法存在明显的不足之处。首先是数 据安全性问题。由于数据被每个模块所共用,因此 是不安全的,一旦出错,很难查明原因。其次是可 维护性及可重用性差。它把数据结构和算法分离为 相互独立的实体,一旦数据结构需要改变时,常常 要涉及整个程序,修改工作量极大并容易产生新的 错误。每一种相对于老问题的新方法都要带来额外 的开销。另外,图形用户界面的应用程序,很难用 过程来描述和实现,开发和维护也都很困难。 (2) 什么是面向对象程序设计方法?它有哪些 优点?
【问题解答】
面向对象的程序设计方法中,将程序设计为一组相 互协作的对象而不是一组相互协作的函数。在程序 中, 属性用数据表示, 用来描述对象静态特征; 行 为用程序代码实现, 用来描述对象动态特征。 可见, 在面向对象的程序设计方法中,对象是数据结构和 算法的封装体。对象之间存在各种联系,它们之间 通过消息进行通信。程序可表示为:程序 =对象 +消息
在面向对象程序设计中应着重于类的设计。类正是 面向对象语言的基本程序模块,通过类的设计来完 成实体的建模任务。类通过一个简单的外部接口与 外界发生关系。一个类中的操作不会处理到另一个 类中的数据,这样程序模块的独立性、数据的安全 性就有了良好的保障。程序的执行取决于事件发生 的顺序,由顺序产生的消息来驱动程序的执行。不 必预先确定消息产生的顺序,更符合客观世界的实 际。并且面向对象程序设计方法提供了软件重用、 解决大问题和复杂问题的有效途径,具有抽象性、 封装性、继承性和多态性等特点。
(3) 结构化程序设计方法与面向对象程序设计 方法在对待数据结构和算法关系上有 什么不同? 【问题解答】
结构化程序设计方法中,把数据结构和算法分离为 相互独立的实体; 而在面向对象程序设计中,数 据结构和算法封装在一起,结合成一个独立的单 位,即对象,并尽可能隐蔽对象的内部细节。对象 的私有属性只能由这个对象的行为来读取和修改, 与外部的联系通过公有行为充当外部接口。


你可能感兴趣的:(面向对象程序设计教程(c++语言描述)第一章课后习题解题)