第9-12章 面向对象
第9章 面向对象的分析设计方法
第9章 面向对象的分析设计方法
9.1 面向对象的分析与设计方法概 述
面向对象技术是当前的热门话题,也是软件开发方法 的潮流和方向。面向对象方法的形成最初是从面向对象程 序设计语言开始的,随后才逐渐形成了面向对象的分析和 设计。面向对象是近几十年来国内外IT行业最为关注的技 术之一,面向对象技术是一种按照人们对现实世界习惯的 认识论和思维方式来研究和模拟客观世界的方法学。它将 现实世界中的任何事物都视为“对象”,将客观世界看成 是由许多不同种类的对象构成的,每一个对象都有自己的 内部状态和运动规律,不同对象之间的相互联系和相互作 用就构成了完整的客观世界。面向对象方法(Object Oriented,简称OO方法)克服了传统的功能分解方法只能 单纯反映管理功能的结构状态、数据流程模型只侧重反映 事物的信息特征和流程、信息模拟只能被动地迎合实际问 题需要等缺点,构成以系统对象为研究中心,为信息管理 系统的分析与设计提供了一种全新的方法。
第9章 面向对象的分析设计方法
面向对象方法就是以对象为中心、以对象为出发点的方 法。在应用领域中有意义的、与所要解决的问题有关系的任 何人或事物(即我们说的实体)都可以作为对象,它既可以 是具体的物理实体的抽象,也可以是人为的概念,或者是任 何有明确边界和意义的事物或东西。在面向对象方法中,对 象是一组数据(属性)和施加于这些数据上的一组操作代码 (操作)构成的独立类体。换言之,对象是一个有着各种特 殊属性(数据)和行为方式(方法)的逻辑实体。对象是一 个封闭体,它向外界提供一组接口界面,外界通过这些接口 与对象进行交互,这样对象就具有较强的独立性、自治性和 模块性,从而为软件的重用奠定了坚实的基础。
第9章 面向对象的分析设计方法
第9章 面向对象的分析设计方法 章
第9章 面向对象编程习题及答案
1、关于python类说法错误的是:A 类的实例方法必须创建对象后才可以调用B 类的实例方法必须创建对象前才可以调用C 类的类方法可以用对象和类名来调用D 类的静态属性可以用类名和对象来调用答案:B2、如下类的定义,下列描述错误的是?class A(object):passclass B(A):passb=B()A、i sinstance(b,A)==TrueB、isinstance(b,object)==TrueC、i ssubclass(B,A)==TrueD、i ssubclass(b,B)==True答案:D3、定义类如下class Hello():def __init__(self,name)=namedef showInfo(self)print()下面代码能正常执行的:A、h = Helloh.showInfo()B、h = Hello()h.showInfo(‘张三’)C、h = Hello(‘张三’)h.showInfo()D、h = Hello(‘admin’)showInfo答案:C4、导入模块的方式错误的是:A、i mport moB、from mo import *C、i mport mo as mD、i mport m from mo答案:D5、以下关于模块说法错误的是:A、一个xx.py就是一个模块B、任何一个普通的xx.py文件可以作为模块导入C、模块文件的扩展名不一定是 .pyD、运行时会从制定的目录搜索导入的模块,如果没有,会报错异常答案:C6、多重继承的执行顺序,请解答以下输出结果是什么?并解释。
class A(object):def __init__(self):print('A')super(A, self).__init__()class B(object):def __init__(self):print('B')super(B, self).__init__()class C(A):def __init__(self):print('C')super(C, self).__init__()class D(A):def __init__(self):print('D')super(D, self).__init__()class E(B, C):def __init__(self):print('E')super(E, self).__init__()class F(C, B, D):def __init__(self):print('F')super(F, self).__init__()class G(D, B):def __init__(self):print('G')super(G, self).__init__()g = G()f = F()答案:GDABFCBDA7、编写程序,创建类Temperature,其包含成员变量degree(表示温度)以及实例方法ToFahrenheit(将摄氏温度转换为华氏温度)和ToCelsius(将华氏温度转换为摄氏温度),其中,(华氏度-32)*5/9=摄氏度,摄氏度*9/5+32=华氏度答案:class Temperature:def __init__(self, degree):self.degree = degreedef toFahrenheit(self):return self.degree*9/5 + 32def toCelsius(self):return (self.degree -32) * 5/9n1 = float(input("请输入摄氏温度:"))t1 = Temperature(n1)print("摄氏温度= {0:.2f},华氏温度= {1:.2f}".format(n1, t1.toFahrenheit()))n2 = float(input("请输入华氏温度:"))t2 = Temperature(n2)print("摄氏温度= {0:.2f},华氏温度= {1:.2f}".format(t2.toCelsius(), n2))8、定义一个至少有两个方法的类: getString:从控制台输入获取字符串 printString:打印输入字符串对应的大写形式。
《实用软件工程》第9章 面向对象设计
• 信息隐藏:对于类而言,其内部信息如属性的表示方法和操作的实现算法,对 外界是隐藏的。外界通过有限的接口来访问类的内部信息。
17
9.3.2 面向对象设计的原则
• 低耦合:在面向对象设计中,耦合主要指对象之间相互关联的紧密程度,低耦 合有利于降低一个模块改变对其他模块的影响。
• 高内聚:内聚与耦合密切相关,低耦合往往意味着高内聚,高内聚有助于提高 系统独立性。
但随着需求理解的加深,以及对系统认识程度的逐步 提高,设计人员还要对模型进行修正和完善。 • 设计任务管理子系统包括确定任务,分配任务,还包 括权衡一致性、成本、性能等因素以及未来可扩充性。 • 设计数据管理子系统,需要设计数据格式以及相应的 服务,设计数据格式的方法与所用的数据存储管理模 式密切相关,不同数据存储管理模式时,属性和服务 的设计方法是不同的。
9.2 面向对象设计与面向对象分析的关系
• 设计阶段的任务是及时把分析阶段得到的需求转变成符合各项要求的 系统实现方案。与传统的软件工程方法不同的是,面向对象的方法不强调 需求分析和软件设计的严格区分。实际上,面向对象的需求分析和面向对 象的设计活动是一个反复迭代的过程,从分析到设计的过渡,是一个逐渐 扩充、细化和完善分析阶段所得到的各种模型的过程。严格的意义上来讲, 从面向对象分析到面向对象设计不存在转换问题,而是同一种表示方法在 不同范围的运用。面向对象设计也不仅仅是对面向对象分析模型进行细化。
• (2)人机交互子系统包括有效的人机交互所需的显示和输入,这些类在很大程度上 依赖于所用的图形用户界面环境,例如Windows、Delphi、C++,而且可能包括“窗 口”、“菜单”、“滚动条”、“按钮”等针对项目的特殊类。
25
9.5.1 系统分解
第十二章 组件图-UML面向对象分析、建模与设计-吕云翔-清华大学出版社
Account Account Details
12.2 组件图的组成元素
组件 接口 组件图中的关系
组件的内部结构
组件
组件,是系统设计的一个模块化部分, 它隐藏了内部的实现,对外提供了一组 接口。
组件是一个封装完好的物理实现单元, 它具有自己的身份标示和定义明确的接 口。并且由于它对接口的实现过程与外 部元素独立,所以组件具有可替换性。
组件图在面向对象设计过程中起着非常重要的作用:它明确了系统 设计,降低了沟通成本,而且按照面向对象方法进行设计的系统和子 系统通常保证了低耦合度,提高了可重用性。
组件图的基本概念
cmp 组件图
Item Code
ProductLeabharlann Order Payment
Customer Details
Customer
组件B的支持
实现关系
组件与提供接口之间建立实现关系
组件图的建模技术
对源代码结构建模
识别出感兴趣的源代码文件集合,并建模为组件。 如果系统规模较大,使用包对组件进行分组。 可以使用约束或注解来表示源代码的作者、版本号等信息。 使用接口和依赖关系来表示这些源代码文件之间的关系。 检查组件图的合理性,并识别源代码文件的优先级以便进行开发工作。
接口
对于一个组件而言,它有两类接口,提供接口与需求接口。
提供接口:又被称为导出接口或供给接口,是组件为其他组件提供服务 的操作的集合。
需求接口:又被称为引入接口,是组件向其他组件请求相应服务时要遵
循的接口。
cmp 组件图
cmp 组件图
Drawing
供给接口
需求接口
Shape
Drawing
IShape
9_面向对象的需求分析方法
9.1 面向对象技术概述9 面向对象的需求分析方法二者的本质区别• 面向过程的结构化系统 = 功能 + 数据 • 面向对象的系统 = 对象 + 消息9 面向对象的需求分析方法二者的本质区别银行账户对象 存款 取款 利息结算 账户 余额 存 款 账户 余额 利息结算 外部消息 取 款9 面向对象的需求分析方法面向对象方法的发展历史• 初始阶段• 1960’s:Simula编程语言 • 1970’s:Smalltalk编程语言• 发展阶段• 1980’s:理论基础,许多OO 编程语言(如C++, Objective-C等)• 成熟阶段• 1990’s:面向对象分析和设计方法(Booch, OMT等), Java • 1997:OMG 组织的统一建模语言(UML) • 逐渐替代了传统的结构化方法9 面向对象的需求分析方法面向对象的软件工程• 面向对象分析(Object Oriented Analysis, OOA)• 分析和理解问题域,找出描述问题域和系统责任所需的类及 对象,分析它们的内部构成和外部关系,建立OOA 模型。
• 面向对象设计(Object Oriented Design, OOD)• 将OOA 模型直接变成OOD 模型,并且补充与一些实现有关 的部分,如人机界面、数据存储、任务管理等。
• 面向对象编程(Object Oriented Programming, OOP)• 用一种面向对象的编程语言将OOD 模型中的各个成分编写成 程序,由于从OOA→OOD→OOP实现了无缝连接和平滑过 渡,因此提高了开发工作的效率和质量。
9 面向对象的需求分析方法面向对象的软件工程现实世界OOA结构化分析OOD结构化设计OOP结构化编程可执行软件系统9 面向对象的需求分析方法OO中的喷泉过程模型• 喷泉模型:• 在OO开发过程中,各阶段之间形 成频繁的迭代; • OO各阶段均采用统一的“对象”概 念,各阶段之间的区分变得不明 显,形成“无缝”连接,从而容易实 现多次反复迭代。
黄梯云《管理信息系统》笔记和课后习题详解(面向对象的系统开发)
第9章面向对象的系统开发9.1 复习笔记一、面向对象方法的基础理论1.面向对象的基本概念(1)对象(Object)①概念对象泛指所要研究的具体事物、抽象概念等。
在面向对象的系统中,问题对象是基本的运行实体,由一组数据和施加于这些数据上的一组操作封装而成。
②构成对象的基本要素a.标识标识即对象的名称,用来在问题域中区分其他对象。
b.数据数据也称状态,用于描述对象属性的存储或数据结构。
c.操作操作即对象的行为,对象运动特性的描述。
d.接口接口是指对象接受外部消息所指定的操作名称集合。
③记录对象禁止特征的数据类型a.公共数据对外界是可见的,用于对象间信息的传递。
b.私有数据是对象操作实现过程中的局部信息,外界不可见。
④数据和操作间的相互作用图9-1说明了对象的内部组织以及与其他对象的联系机制。
图9-1 对象的内部组织以及与其他对象的联系机制(2)类(Class)类是相似对象的集合,现实世界中由许多内部状态和外部行为相似的对象构成的集合就是类。
①标识标识即类的名称,用以区分其他类。
②继承继承描述子类承袭父类的名称,以及结构与功能。
③数据结构数据结构是对该类数据包含数据项的描述。
④操作操作是该类通用功能的具体实现方法。
⑤接口接口是面向其他类的统一的外部通信协议。
(3)消息(Message)消息是实现对象与对象间相互合作的通信载体,是连接对象的纽带,也是请求对象执行某个处理或提供某些信息的要求。
①消息传递当消息发送给某个对象时,接收到消息的对象经过解释予以响应,对象间的这种相互合作需要一个机制协助进行,这样的机制称为“消息传递”。
②消息传递模型图9-2就表示了一个消息传递的模型。
图9-2 消息传递模型(4)继承(Inheritance)继承是指一个类(即称子类)因承袭而具有另一个类(或称父类)的能力和特征的机制或关系。
①继承的特征层次结构的上部(或祖先类)具有通用性,下部(后代类)具有特殊性。
②有继承关系的类应具有的特性a.共享性共享性包括数据和程序代码的共享。
《Java语言程序设计》教案
第3节变量与常量
1.常量
2.变量
3.课堂案例
第4节运算符
1.赋值运算符“=”
2.算术运算符+、-、*、/、%
3.自增自减运算符
4.比较运算符>;<;==;>=;<=;!=
5.逻辑运算符&&;||;!
6.三目运算符
7.运算符的优先级
第5节数据类型转换
1.自动类型转换
2.强制类型转换
5、计算1*2*3*4*……*10的结果。
6、输入一个大于0的整数放入到变量n中,计算1+2+3+……+(n-1)+n的结果。
7、输入一个整数放入到变量n中,如果这个整数大于0,那么计算1+2+3+……+(n-1)+n的结果,否则输出“输入的数据有错误”。
8、循环输入5个学生的成绩,计算这5个学生的总分,及平均分。
教学内容
备注
第5章数组和字符串
第1节数组
1.一维数组的声明与创建
2.一维数组的初始化
3.二维数组的创建与初始化
4.课堂案例——数组元素排序
第2节String类
1.声明并创建字符串(常用)
2.使用字符数组创建字符串
3.连接字符串连接字符串“Hello”和“Java”
4.连接其他数据类型
5.获取字符串长度
比如:输入abc输入def输入Esc
就输出abcdef
12.输出1000以内的水仙花数
13.使用do-while实现:输出摄氏温度与华氏温度的对照表,要求它从摄氏温度0度到250度,每隔20度为一项,对照表中的条目不超过10条。
作业四 面向对象需求建模解答(第9-11章)
作业四面向对象需求建模(第9-11章)4-1、根据以下描述,使用面向对象的分析方法,分析有那些主要对象和这些对象的主要属性、方法,画出对象图。
一个饮料自动售货机可以放置五种不同或部分相同的饮料,可由厂商根据销售状况自动调配,并可随时重新设置售价,但售货机最多仅能放置50罐饮料,其按钮设计在各种饮料样本的下方,若经金额计算器累计金额足够,则选择键灯会亮;若某一种饮料已销售完毕,则售完灯会亮。
顾客将硬币投入售货机,经累加金额足额的饮料选择键灯亮,等顾客按键选择。
顾客按键后饮料由出物口掉出,并自动结算及找钱。
顾客可在按下选择键前任何一个时刻,可以拉动退币杆取消交易收回硬币。
4-2、请画出一个用户使用银行ATM的状态转换图。
从用户将卡插入卡槽开始,到用户取卡结束(如果用户忘记,ATM应报警),用户可以完成以下几个步骤:登录(卡片进入ATM机后,如果不是可读卡,退卡;如是,等待用户输入密码,三次错,吞卡,正确后进入主菜单),取钱(进入取钱菜单,输入金额,如果帐户余额不足,提示余额,并要求用户重新输入,如果帐上钱够,吐钱币,并询问是否打印凭证,最后返回主菜单),主菜单提供退出取卡选择。
4-3、某公安报警系统在一些公安重要保护单位(银行、学校等)安装了报警装置,其工作过程如下:一旦发生意外事故,故事发生单位只需按报警按钮,系统立即向公安局发出警报信息、自动显示出报警单位的地址、电话号码等。
110警车立即出动前往出事地点。
值班人员可以接通事故单位的电话、问清情况,需要时再增派公安人员到现场处理。
根据以上情况进行分析,确定本系统有哪些用例、对象,画出用例图、类图及顺序图。
下面是某位同学做的用例:按报警按钮,向公安局发出警报信息,显示报警单位地址电话,110警车前往出事地点,值班人员接通事故单位的电话、问清情况,增派公安人员对象:事故单位、报警系统、公安局、值班人员、公安人员,警车类图:用例图:事故单位报警系统值班人员顺序图:4-4、小李新接了一个项目:设计一个简单的学生选课系统,系统能注册符合要求的同学,同学注册以后就能进行选课,选课过程如下:先选课名,然后根据课程的上课老师、时间、地点和人数限制来决定是否成功选课;老师也可以根据情况提供新的课程说明或修改过去课程的说明;教务处的老师统一管理注册的情况,可以有删除、修改学生、老师和课程的权限。
第9章面向对象方法学
(三) 面向对象的概念
1. 对象
在应用领域中有意义的、与所要解决的 问题有关系的任何事物都可以作为对象。 它既可以是具体的物理实体的抽象,也 可以是人为的概念,或者是任何有明确边界和 意义的东西。
客观世界的问题看成对象取决于应用的 视角和问题的性质。 当你在路上找人,你看到的对象就是流 动的人群; 当你需要出租车,你看到的对象就是过 往的车辆。
当对象 MyCircle 接受到这个消息后, 执行Circle类中所定义的 Show 操作。 注意: 1)消息由接受消息的对象来解释。 (MyCircle 就是接受消息的对象) 2)一个对象需要另一个对象服务时,就向 它发出请求服务的消息。这时,接受消息 的对象响应消息,触发所要求服务的操作 的方法来完成服务。
OO技术以对象(object)为核心,把静态 属性的数据,和对这些数据施加的操作封装在 一起所构成的统一体。
2. 稳定性好 面向对象的软件系统的结构是根据问题 领域的模型建立起来的。 (而传统方法是基于系统的功能的分解。) 当对系统的功能需求变化时并不会引起 软件结构的整体变化。因此,以对象为中心构 造的软件系统也是比较稳定的。
7. 封装(encapsulation) 从字面上理解,所谓封装就是把某个事物 包起来,使外界不知道该事物的具体内容。 对象具有封装性的条件如下: (1) 有一个清晰的边界。 (2) 有确定的接口。这些接口就是对象可 以接受的消息,只能通过向对象发送消息来使 用它。 (3) 受保护的内部实现。实现对象功能的 细节(私有数据和代码)不能在定义该对象的 类的范围外访问。
一. 传统方法学的问题
(一) 软件不能真正满足用户需求
1. 软件开发效率低 2. 软件不能满足“需求变化”、“需求模糊” 和“需求灵活性” 3. 软件重用度低 4. 软件仍然很难维护
软件工程-电子教案第9章
9.3.2 设计用户界面 9.3.3 画UML顺序图或活动图
【例9.4】画出招聘考试管理系统的顺序图 某市人事局举行统一招聘考试。首先,各招聘 单位向人事局登记本单位各专业的招聘人数, 由人事局向社会公布招聘情况;考生报名、填 志愿;人事局组织安排考试;录入考试成绩; 向考生和招聘单位公布成绩;招聘单位进行录 用;发录用通知书。这里,共有三个对象类: 人事局、考生和招聘单位。
《软件工程》 陆惠恩主编
3
9.2.2 确定类的相互关系 1. 类的一般-特珠关系
《软件工程》 陆惠恩主编
4
2. 聚集关系
“整体-部分”关系
90 80 70 60 50 40 30 20 10 0 第一季度 第三季度 东部 西部 北部
《软件工程》 陆惠恩主编
5
3. 关联关系
阶 链属性
限定
《软件工程》 陆惠恩主编
《软件工程》 陆惠恩主编 18
9.7 UML的应用
9.7.1 UML模型 1. 用例模型 2. 静态模型 3.动态模型 4.实现模型
《软件工程》 陆惠恩主编
19
9.7.2 UML视图
视图域 视图 静态视图 结构分类 用例视图 实现视图 部署视图 状态视图 动态行为 活动视图 交互视图 图 类图 用例图 构件图 部署图 状态图 活动图 顺序图 协作图 模型管理 可扩展性 模型管理视图 类图 所有 所有 主要概念 类、关联、泛化、依赖关系、实现、接口 用例、执行者、关联、扩展、包含、用例 继承 构件、接口、依赖关系、实现 结点、构件、依赖关系、位置。 状态、事件、转换、动作 状态、活动、转换、分叉、连接 交互、对象、消息、激活 协作、交互、角色、消息 包、子系统、模型。 约束、版型、标签值
第九讲面向对象方法介绍
类之间主要存在三种关系。它们是:关联、 聚合和泛化。
15
16
消息——
消息是一个对象要求另一个对象实施某项 操作的请求。在一条消息中,需要包含消 息的接收者和要求接收者执行哪项操作的 请求,而并没有说明应该怎样做,具体的 操作过程由接收者自行决定。
43
44
标准建模语言UML (顺序图)
44
45
标准建模语言UML (协作图)
45
46
标准建模语言UML (活动图)
46
47
标准建模语言UML (构件图)
Whnd.cpp: 窗口处理器
Whnd.obj: 窗口处理器
Graphic.dll: 图形库
Comhnd.cpp: 命令处理器
Comhnd.obj: 命令处理器
16
17
消息传递是对象之间相互联系的惟一途径。 发送者发送消息,接收者通过调用相应的 方法响应消息,这个过程被不断地重复, 使得应用程序在人的有效控制下运转起来, 最终得到相应的结果。可以说,消息是驱 动面向对象程序运转的源泉。
17
继承——
继承是类之间的一种常 见关系。这种关系为共 享数据和操作提供了一 种良好的机制。通过继 承,一个类的定义可以 基于另外一个已经存在 的类。继承是面向对象 程序设计方法的一个重 要标志,利用继承机制 可以大大提高程序的可 重用性和可扩充性。
• UML是一种建模语言而不是一种方法,UML本身是 独立于过程的。
31
32
标准建模语言UML
UML为人们提供了从不同的角度去观 察和展示系统的各种特征的一种标准表 达方式。在UML中,从任何一个角度对系 统所作的抽象都可能需要用几种模型图 来描述,而这些来自不同角度的模型图 最终组成了系统的完整模型。
张海藩《软件工程导论》(第6版)(课后习题 第9章 面向对象方法学引论)【圣才出品】
第9章面向对象方法学引论1.什么是面向对象方法学?它有哪些优点?答:(1)面向对象方法学是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类解决问题的方法与过程,使描述问题的问题空间与实现解法的解空间在结构上尽可能一致的方法学科。
(2)面向对象方法学优点:①与人类习惯的思维方法一致。
②面向对象软件稳定性好。
③面向对象软件可重用性好。
④较易开发大型软件产品。
⑤可维护性好。
2.什么是“对象”?它与传统的数据有何异同?答:(1)对象是对问题域中某个实体的抽象。
(2)相对于传统数据结构的静态被处理,对象既有静态的属性,也有动态的行为,是进行处理的主体。
3.什么是“类”?答:类是对具有相同数据结构和相同操作的一组组相似对象的定义,即类是对具有相同属性和行为的一个或多个对象的描述,包括对怎样创建该类的新对象的说明。
4.什么是“继承”?答:继承是指能够直接获得已有的性质和特征,而不必重复定义它们。
在面向对象的软件技术中,继承是子类自动地共享基类中定义的数据和方法的机制。
5.什么是模型?开发软件为何要建模?答:(1)模型是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。
模型由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。
模型是一种思考工具,利用这种工具可以把知识规范地表示出来。
(2)由于建模忽略了事物的非本质属性,因此模型比原始事物更容易操作。
对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,模型通过吧系统的重要部分分解成人的头脑一次能处理的若干个子部分,从而减少了系统的复杂程度。
6.什么是对象模型?建立对象模型时主要使用哪些图形符号?这些符号的含义是什么?答:(1)对象模型表示静态的、结构化的系统的数据性质。
它是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。
(2)通常使用UML提供的类图来建立对象模型。
(3)在UML中“类”的实际含义是。
《Python程序设计(第3版)》PDF高清完整版_Python入门书
《Python程序设计(第3版)》PDF⾼清完整版_Python⼊门书《Python程序设计(第3版)》PDF⾼清完整版
Python⼊门书
内容简介
本书是⾯向⼤学计算机科学专业第⼀门程的教材。
本书以Python语⾔为⼯具,采⽤相当传统的⽅法,强调解决问题、设计和编程是计算机科学的核⼼技能。
全书共13章,包含两个附录。
第1章到第5章介绍计算机与程序、编写简单程序、数字计算、对象和图形、字符串处理等基础知识。
第6章到第8章介绍函数、判断结构、循环结构和布尔值等话题。
第9章到第13章着重介绍⼀些较为⾼级的程序设计⽅法,包括模拟与设计、类、数据集合、⾯向对象设计、算法设计与递归等。
附录部分给出了Python快速参考和术语表。
每⼀章的末尾配有丰富的练习,包括复习问题、讨论和编程联系等多种形式,帮助读者巩固该章的知识和技能。
本书特⾊鲜明、⽰例⽣动有趣、内容易读易学,是美国颇受欢迎的教程,适合Python⼊门程序员阅读,也适合⾼校计算机专业的教师和学⽣参考。
⽬录
内容提要序前⾔第1章 计算机和程序第2章 编写简单程序第3章 数字计算第4章 对象和图形第5章 序列:字符串、列表和⽂件第6章 定义函数第7章 判断结构第8章 循环结构和布尔值第9章 模拟与设计第10章 定义类第11章 数据集合第12章 ⾯向对象设计第13章 算法设计与递归附录A Python快速参考附录B 术语表。
第9章 面向对象方法学
第9章面向对象方法学一、填空题(10小题)1、对象具有状态,描述对象的状态用它的()。
答案:属性值2、类具有属性,描述类的属性用()。
答案:数据结构3、子类自动共享父类的属性和操作的机制称为()。
答案:继承4、封装性是指所有软件部件内部都有明确的()以及清楚的()。
每个软件部件都有友好的(),软件部件的()与()分离。
答案:范围、外部边界、界面接口、内部实现、外部可访问性5、结构化方法的本质是(),其()、可修改性和可重用性都比较差。
答案:功能分解、稳定性6、动态模型描述了系统的()。
答案:动态行为7、类具有属性,它是对象的()的抽象,用()来描述类的属性。
答案:状态、数据结构8、动态模型描述了系统的()结构。
答案:控制9、对象具有状态,对象用()来描述它的状态。
答案:数据值10、在C++和C中有一个()函数,可以使用这个过程来说明构成系统主要对象的那些类的实例。
答案:main()二、单项选择题(20小题)1、在确定类时,所有()是候选的类。
A、名词B、形容词C、动词D、代词答案:A2、面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(),一个类获得其父类的全部描述(数据和操作)。
A、传递性B、继承性C、复用性D、并行性答案:B3、对象是面向对象开发方法的基本成分,每个对象可用它本身的一组()和它可以执行的一组操作来定义。
A、服务B、参数C、属性D、调用答案:C4、面向对象开发方法子概念和表示上的一致性保证了分析和设计的()过渡。
A、困难B、不容易C、平滑D、顺序答案:C5、以下说法正确的是()。
A、组装结构可用来描述现实世界中的一般的抽象关系B、分类结构可用来描述现实世界中的类的组成的抽象关系C、面向对象的继承性是子类自动共享父类数据结构和方法的机制D、面向对象的唯一性是指将具有一致性的数据结构(属性)和行为(操作)的对象抽象成类答案:C6、与事件联系在一起的瞬时操作是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
09-12 面向对象(技术、需求分析、分析、设计与实现)
一、选择题
(1)面向对象的分析方法主要是建立三类模型,即 ( D )。
A.系统模型、ER 模型、应用模型B.对象模型、动态模型、应用模型
C.E-R模型、对象模型、功能模型D.对象模型、动态模型、功能模型
(2)面向对象技术中,对象是类的实例。
对象有三种成份:( A )、属性和方法。
A. 标识
B. 规则
C. 封装
D. 消息
(3)( C )是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。
A.多态性
B.继承
C.封装
D.消息
(4)消息是对象间交互的一种机制,消息刺激接收对象产生某种行为。
消息的构成有三部分:( B ),消息名,若干变元。
A.发出消息的对象 B.接收消息的对象 C.消息编号 D.时间
(5)面向对象设计准则包括:模块化,抽象,( A ),弱耦合,强内聚和可重用。
A.信息隐藏 B.可继承 C.封装性 D.实例化
(6)( A )意味着一个操作在不同的类中可以有不同的实现方式。
A.多态性 B.多继承 C.类的复用 D.封装
(7)软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫( B )。
A.生存期 B.面向对象分析
C.面向对象程序设计 D.面向对象设计
(8)把一组具有相似特性的对象的描述,称之为( C )。
A. 多态性
B.继承性
C.类
D.消息
(9)面向对象分析的独到之处在于( A )。
A.将数据和操作结合在一起而不是分离 B.仅考虑数据结构
C.数据和操作分别独立考虑 D.仅考虑操作过程
(10)下面关于面向对象方法中消息的叙述,不正确的是( B )。
A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息
B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息
C. 应用程序之间可以相互发送消息
D.发送与接收消息的通信机制与传统的子程序调用机制不同
(11)面向对象分析是对系统进行( A )的一种方法。
A.需求建模 B.程序设计 C.设计评审 D.测试验收
(12)汽车有一个发动机。
汽车和发动机之间的关系是( B )。
A.继承关系 B.聚合关系C.分类关系D.主从关系
(13)汽车有一种叫货车。
汽车和货车之间的关系是( A )。
A.继承关系 B.聚合关系C.分类关系D.主从关系
(14)消息是对象间交互的手段,消息刺激接收对象产生某种行为。
消息的构成有三部分:接收消息的对象,( B ),若干变元。
A.发出消息的对象 B.消息名 C.消息编号 D.发送时间
(15)( C )是指用户只能见到对象界面上的信息,对象内部对用户是隐蔽的。
A.类 B.实例 C.封装 D.对象
(16)对象是OO方法的核心,对象的类型有多种,但通常把如飞行、事故、演出、开会等称为( C )
A.有形实体 B.作用 C.事件 D.性能说明
(17)( C )是对具有相同属性和行为的一个或多个对象的描述。
A.属性 B.实例 C.类 D.对象
二、填空题
1.UML的类包含三个部分:类的名称、、。
(类的属性、类的操作)
2.类之间的继承关系是现实世界中遗传关系的模拟,它表示类之间的内在联系以及对
的共享。
(属性和操作)
3.UML类之间的关系主要有、聚集、和依赖。
(关联、泛化)
4.类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类
B之间是关系。
(依赖)
5.在面向对象的软件中,是对具有相同数据和相同操作的一组相似对象的定义;
是由某个特定的类所描述的一个具体对象。
(类、实例)
6.面向对象方法用分解取代了传统方法的分解。
(对象、功能)
三、判断题
(1)过程式程序设计语言的基本机制包括:消息传送、数据类型的定义、多态、子程序、控
( F )
(2)面向对象方法中的对象就相当于结构化方法中的模块。
( F )
(3)面向对象中的继承是指子类能够直接获得父类已有的性质和特征,但需要重新定义。
( F )
(4)对象之间的通信仅通过消息传递机制。
(T )。