第3章面向对象得软件开发技术一、选择题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.is a 关系16.火车是一种陆上交通工具,火车和陆上交通工具之间的关系是()。
A.组装关系B.整体部分关系C.has a 关系D.一般具体关系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.对象的操作是通过向目标对象_________来实现的。
6.在面向对象方法中将对对象的处理称为_________,它包括控制和操作过程。
7.对象之间进行_________的构造叫做消息,类中操作实现的过程叫做_________。
8在日常生活中,“类”是对一组客观对象的抽象,它将该组对象所具有的共同特征、包括_________和_________集中起来,以说明该组对象的能力和性质。
9.类包含两方面的内容:_________和_________。
10.一个类可以有它的上层类或是下层类。
上层类称为_________,下层类称为_________。
一般情况下类层次结构是_________。
11面向对象方法最突出的特性是_________、_________和_________。
12.在面向对象系统中封装的单位是_________。
13.在面向对象方法中,信息隐藏通过对象的_________来实现。
类结构分离了_________与_________,从而支持了信息隐藏。
14.子类只继承_________的属性和操作,称为单重继承性。
15.继承有单重继承和多重继承。
单重继承指的是_________,在一个类层次结构中,若只有单重继承,则该类层次结构是_________。
多重继承指的是_________,在一个类层次结构中,若有多重继承,则该类层次结构是_________。
16.多态性主要表现在_________和_________这样两个重要的技术特征上。
17.在客观世界中有若干类,这些类之间有一定的结构关系。
通常有两种主要的关系,即_________关系,_________关系。
18.对象的关联具体表示有两类,一类是对象之间的_________,用_________表示;另一类是对象之间的_________,用_________表示。
19.消息连接分为两类:即_________中的消息和_________中的消息。
20.Meyer提出了模块结构5条基本的设计原则是_________、_________、_________、_________和_________。
三、名词解释1、实体2、对象3、服务4、消息5、类6、封装7、继承性 8、单重继承 9、多重继承10、多态性 11、重载 12、动态绑定13、一般一特殊关系 14、整体一部分关系 15、消息连接四、简答题1、什么是面向对象程序设计方法?2、简述对象与传统的数据的区别。
3、如何区分公有消息和私有消息?它们有谁分送?4、简述Yourdon提出的面向对象分析方法经历的过程。
5、简述Meyer提出了模块结构5条基本设计原则。
6、简述面向对象测试的主要特点。
五、应用题1、一本书有一个封面、一个前言、一个目录、若干章,每章有若干节,每节有若干段,每段有若干句子,每节有0个或多个插图,还有0个或多个表格,最后还有一个封底。
试建立该书的对象模型。
2、交通工具分为空中、陆上、水上交通;空中交通工具分为客机、货机、专用轻型机;陆上交通工具分为火车、汽车;火车和汽车又分客车、货车;水上交通工具是轮船,轮船分为客轮、货轮。
试建立交通工具的对象模型。
参考答案一、选择题1.C2.A3.B4.C5.D6.D7.B8.A9.D 10.A11.C 12.C 13.B 14.A 15.B16.D 17.D 18.A 19.C 20.B二、填空题1、功能分解;对象分解2、数据;方法3、表达;描述4、状态特征;操作5、传递消息6、服务7、通信;方法8、结构特征;行为特征9、外部特征;内部实现10、超类;子类;树型结构11、封装性;继承性;多态性12、对象13、封装性;接口;实现14、一个超类(父类)15、子类继承了一个父类的性质;树型层次结构;子类继承了多个父类的性质;网状层次结构16、重载;动态绑定17、一般一特殊;整体一部分18、静态关系;实例连接;动态关系;消息连接19、顺序系统;并发系统20、语言模块单元;少的接口(弱的耦合);明确的接口;信息隐藏三、名词解释1、实体是客观存在的事物。
2、对象是指人们要进行研究的任何事件,它不仅能具体的事物,还能表示抽象的规则、计划或事件,主要的事件类型有有形实体、作用、事件、性能说明。
3、服务是指在面向对象方法中对对象的处理。
4、对象之间进行通信的构造叫做消息。
5、类是具有共同属性、共同操作性质的对象的集合。
6、封装就是将某事物包围起来,使外界不知到其实际内容。
7、继承性是指任何一个对象都是某一个对象都是某一个类的实例,它继承该类定义的数据结构和服务功能。
8、单重继承是指在类层次中,子类只继承一个父类的数据结构和方法。
9、多重继承是指在类层次中,子类继承了多个父类的数据结构和方法。
10、多态性是指在一般类中定义的属性或服务被特殊类继承后,可以具有不同的数据类型或表现出不同的行为。
11、重载是指在特殊类中对继承来的属性或服务重新进行定义。
12、动态绑定也称为动态联编,即指在运行时根据对象接收的消息动态地确定要连接哪一段服务代码。
13、一般一特殊关系称为分类结构,也可以说是“或”关系,类的这种层次结构可用来现实世界中的一般化的抽象关系,通常越在上层的类越具有一般性和共性,越在下层的类越具体。
越细化。
14、整体一部分关系称为组装结构,也可以说是“与”关系。
类的这种层次结构可用来描述现实世界中的类的组成的抽象关系,通常越在上层的类越具有整体性、越在下层的类越具有成员性。
15、消息连接表示对象之间进行通信联系的路径(通道),它表示的是对象之间的动态联系。
四、简答题1、面向对象程序设计方法是模拟人类习惯的解题方法,用对象分解取代功能分解,也就是把程序分解成许多对象,不同对象之间通过发送消息向对方提出服务要求,接收消息的对象主动完成指定功能,程序中的所有对象分工协作,共同完成整个程序的功能。
只要告诉对方“做什么”,而不必告诉对方“怎么做”。
2、对象与传统的数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体,必须发消息请求对象执行它的某个操作,处理它的私有数据,而不能从外界直接对对象的私有数据进行操作。
也就是说,一切局部于该对象的私有信息,都被封装在该对象类的定义中,就好像装在一个不透明的黑盒子中一样,在外界是看不见的,更不能直接使用,这就是“封装性”。
3、若有一批消息同属于一个对象,其中有一部分是由外界对象直接向它发送的,称之为公有消息;还有一部分则是它自己向本身发送的,这些消息是不对外开放的,外界不必了解它,称之为私有消息。
外界对象向此对象发送消息是只能发送公有消息,而不能发送私有消息,私有消息是由其自身发送的。
4、Yourdon提出的面向对象分析方法包括几个步骤:(1)确定对象:要识别问题空间里的对象,可以先对要建立的系统进行描述,然后对这一描述进行语法分析,在每个名词或名词短语下面画上横线,将它填进一张简单的表里,就可以确定对象。
(2)确定结构:在Yourdon的面向对象分析方法中提出两类结构。
一类称为分类结构,定义一个对象的分类结构就是定义和命名这个对象的多个实例,对象与其实例间是一种一般一特殊的关系;另一类结构称为组装结构,是指一个对象可能由多个构件组成,而其中每个构件都可以定义为对象。