名词解释
1、实体 2、对象 3、服务
4、消息 5、类 6、封装
7、继承性 8、单重继承 9、多重继承
10、多态性 11、重载 12、动态绑定
13、一般一特殊关系 14、整体一部分关系 15、消息连接
10、多态性是指在一般类中定义的属性或服务被特殊类继承后,可以具有不同的数据类型或表现出不同的行为。
11、重载是指在特殊类中对继承来的属性或服务重新进行定义。
12、动态绑定也称为动态联编,即指在运行时根据对象接收的消息动态地确定要连接哪一段服务代码。
13、一般一特殊关系称为分类结构,也可以说是“或”关系,类的这种层次结构可用来现实世界中的一般化的抽象关系,通常越在上层的类越具有一般性和共性,越在下层的类越具体。越细化。
14、整体一部分关系称为组装结构,也可以说是“与”关系。类的这种层次结构可用来描述现实世界中的类的组成的抽象关系,通常越在上层的类越具有整体性、越在下层的类越具有成员性。
15、消息连接表示对象之间进行通信联系的路径(通道),它表示的是对象之间的动态联系。
什么是面向对象程序设计方法?
面向对象程序设计方法是模拟人类习惯的解题方法,用对象分解取代功能分解,也就是把程序分解成许多对象,不同对象之间通过发送消息向对方提出服务要求,接收消息的对象主动完成指定功能,程序中的所有对象分工协作,共同完成整个程序的功能。只要告诉对方“做什么”,而不必告诉对方“怎么做”。
简述对象与传统的数据的区别。
对象与传统的数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体,必须发消息请求对象执行它的某个操作,处理它的私有数据,而不能从外界直接对对象的私有数据进行操作。也就是说,一切局部于该对象的私有信息,都被封装在该对象类的定义中,就好像装在一个不透明的黑盒子中一样,在外界是看不见的,更不能直接使用,这就是“封装性”。
如何区分公有消息和私有消息?它们有谁分送?
若有一批消息同属于一个对象,其中有一部分是由外界对象直接向它发送的,称之为公有消息;还有一部分则是它自己向本身发送的,这些消息是不对外开放的,外界不必了解它,称之为私有消息。外界对象向此对象发送消息是只能发送公有消息,而不能发送私有消息,私有消息是由其自身发送的。
简述Yourdon提出的面向对象分析方法经历的过程。
Yourdon提出的面向对象分析方法包括几个步骤:
(1)确定对象:要识别问题空间里的对象,可以先对要建立的系统进行描述,然后对这一描述进行语法分析,在每个名词或名词短语下面画上横线,将它填进一张简单的表里,就可以确定对象。
(2)确定结构:在Yourdon的面向对象分析方法中提出两类结构。一类称为分类结构,定义一个对象的分类结构就是定义和命名这个对象的多个实例,对象与其实例间是一种一般一特殊的关系;另一类结构称为组装结构,是指一个对象可能由多个构件组成,而其中每个构件都可以定义为对象。对象与组成它的对象间是整体一部分的关系。
(3)定义主题:主题只是一个参照符号或指针,指向分析模型中的细节。一个真正的面向对象分析模型可能含有几百个对象和几十个结构,如果它们同时在一个平面上铺开来,很难弄清它们之间的关系。因此定义一些精练的表示形式,作为这些对象和结构的“摘要”是非常必要的。
(4)确定关联:对象并不存在于真空中。因此分析这应该定义模型中每个对象的关系。确定联系是一种定义一个对象实例之间的特定关系的建模过程。它包括定义属性和实例联系于定义操作和消息联系两类。
简述Meyer提出了模块结构5条基本设计原则。
Meyer提出了模块结构5条基本的设计原则如下:
(1)语言模块单元:当模块对应于所用编程语言中的语法单元时,被定义为语言模块单元。也就是说,所采用的编程语言应该能够直接支持定义的模块。
(2)少的接口:为了达到低耦合,模块间的接口的数目必须减到最少。
(3)小的接口(弱的耦合):即通过一个接口的信息量必须尽可能少。
(4)明确的接口:当模块间通信时,必须采用一种明显直接的方式。
(5)信息隐藏:当所有关于模块的信息对外不存取(除非信息被专门定义作为公共信息)隐藏起来,就实现了信息隐藏。
简述面向对象测试的主要特点。
面向对象测试的主要特点如下:
(1)利用对象的封装性。测试以对象类为基础单位进行。测试只需针对类定义范围内的属性和服务、以及有限的对外接口所涉及的部分即可。
(2)利用对象的继承性。若父类已被测试或父类时可重用构件,则对子类的测试重点只是那些新定义的属性和服务。
一本书有一个封面、一个前言、一个目录、若干章,每章有若干节,每节有若干段,每段有若干句子,每节有0个或多个插图,还有0个或多个表格,最后还有一个封底。试建立该书的对象模型。
交通工具分为空中、陆上、水上交通;空中交通工具分为客机、货机、专用轻型机;陆上交通工具分为火车、汽车;火车和汽车又分客车、货车;水上交通工具是轮船,轮船分为客轮、货轮。试建立交通工具的对象模型。