全部科目 > 系统规划与管理师 >
2020年下半年 上午试卷 综合知识
第 8 题
知识点 面向对象的基本概念   对象标识  
章/节 面向对象的系统分析与设计  
 
 
对象包含3个基本要素:对象标识、对象状态和(8)。
 
  A.  对象行为
 
  B.  对象信息
 
  C.  对象特征
 
  D.  对象分类
 
 




 
 
相关试题     面向对象的基本概念 

  第9题    2022年上半年  
关于面向对象的描述,不正确的是()。

  第8题    2019年上半年  
小王是一名教师,性别男,身高180cm,主讲历史,擅长打篮球。该实例中类和 对象相关描述,正确的是( )。

  第8题    2018年上半年  
在面向对象的编程方法中,下图的teach()是( ).

 
知识点讲解
· 面向对象的基本概念
· 对象标识
 
        面向对象的基本概念
        面向对象的基本概念包括对象、类、抽象、封装、继承、多态、接口、消息、组件、复用和模式等。
        (1)对象:由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个模块,是构成系统的基本单位。用计算机语言来描述,对象是由一组属性和对这组属性进行的操作构成的。
        对象包含3个基本要素,分别是对象标识、对象状态和对象行为。例如,对于姓名(标识)为Joe的教师而言,其包含性别、年龄、职位等个人状态信息,同时还具有授课等行为特征,Joe就是封装后的一个典型对象。
        (2)类:现实世界中实体的形式化描述,类将该实体的属性(数据)和操作(函数)封装在一起。
        例如,Joe是一名教师,也就拥有了教师的特征,这些特征就是教师这个类所具有的,如下图所示。
        
        类的构成
        类和对象的关系可理解为,对象是类的实例,类是对象的模板。如果将对象比作房子,那么类就是房子的设计图纸。
        (3)抽象:通过特定的实例抽取共同特征以后形成概念的过程。抽象是一种单一化的描述,强调给出与应用相关的特性,抛弃不相关的特性。对象是现实世界中某个实体的抽象,类是一组对象的抽象。
        (4)封装:将相关的概念组成一个单元模块,并通过一个名称来引用它。面向对象封装是将数据和基于数据的操作封装成一个整体对象,对数据的访问或修改只能通过对象对外提供的接口进行。
        (5)继承:表示类之间的层次关系(父类与子类),这种关系使得某类对象可以继承另外一类对象的特征,继承又可分为单继承和多继承。
        如下图所示,Dog和Cat类都是从Mammal继承而来,具有父类的eyeColor属性特征,因此在子类中就可以不用重复指定eyeColor这个属性。
        
        类的继承
        (6)多态:使得在多个类中可以定义同一个操作或属性名称,并在每个类中可以有不同的体现。多态使得某个属性或操作在不同的时期可以表示不同类的对象特性。
        如下图所示,Rectangle和Circle都继承于Shape,对于Shape而言,会有getArea()的操作。但Rectangle和Circle的getArea()方法的实现是完全不一样的,这就体现了多态的特征。
        
        多态
        (7)接口:描述对操作规范的说明,其只说明操作应该做什么,并没有定义操作如何做。可以将接口理解成为类的一个特例,它规定了实现此接口的类的操作方法,把真正的实现细节交由实现该接口的类去完成。
        (8)消息:体现对象间的交互,通过它向目标对象发送操作请求。
        (9)组件:表示软件系统可替换的、物理的组成部分,封装了模块功能的实现。组件应当是内聚的,并具有相对稳定的公开接口。
        (10)复用:指将已有的软件及其有效成分用于构造新的软件或系统。组件技术是软件复用实现的关键。
        (11)模式:描述了一个不断重复发生的问题,以及该问题的解决方案。其包括特定环境、问题和解决方案3个组成部分。应用设计模式可以更加简单和方便地去复用成功的软件设计和架构,从而帮助设计者更快更好地完成系统设计。
 
        对象标识
        每个对象有一个唯一的、由系统生成的对象标识(Object Identifier,OID)。OID的值对外部用户来说是不可见的,但是系统会在内部用这个值唯一地标识每个对象,并用这个值创建和管理内部对象引用。
        相对于非面向对象数据模型和程序设计语言来说,对象标识给出了一种更强的标识概念,几种常用的标识形式如下:
        (1)值:用于标识的一个数据值。这种形式的标识常在关系数据库中使用。如一个元组的主码标识了这个元组。
        (2)名称:用于标识的用户提供的一个名称。在程序设计语言中,用户赋予每个变量一个名字来标识它;在文件系统中,用户给每个文件赋予一个名称来唯一地标识这个文件。
        (3)内置名:以上两种标识是由用户给出的,而内置名则是一种由系统来提供的标识。这种形式的标识在数据模型或程序设计语言中使用。
        不同的标识符其持久性程度是不同的,主要有以下几种:
        (1)过程内持久性:标识只有在单个过程的执行期间才是持久的,如过程内的局部变量。
        (2)程序内持久性:标识只有在单个程序或查询执行期间才是持久的,如程序设计语言中的全局变量、内存指针,SQL语句中的元组标识符。
        (3)程序间持久性:标识在从一个程序的执行到另一个程序的执行期间都保持不变,如指向磁盘上的文件系统数据的指针提供了程序之间的标识,SQL语句中的关系名也具有程序间持久性。
        (4)永久持久性:标识的持久性不仅仅跨越了各个程序的执行,还跨越了数据结构的重新组织。这种持久性正是面向对象系统所要求的。
        对象标识符必须具有永久持久性,也就是说,特定对象一经产生,系统就赋予一个在全系统中唯一的对象标识符,应该是固定不变的,一直到它被删除。面向对象数据库系统必须具有生成对象标识并维护其永远不变性的机制。
        标识符通常是由系统自动生成的,不需要用户来完成这项工作。然而在使用这种功能时要注意:系统生成的标识符通常是特定于这个系统的,如果要将数据转移到另一个不同的数据库系统中,则标识符必须进行转化。而且,如果一个实体在建模时已经有一个系统之外的唯一标识符,则系统生成的标识符就可能是多余的。如身份证号码可以作为个人的唯一标识符。
        早期的面向对象数据模型要求把所有的一切表示为对象,无论是一个简单的值还是一个复杂的对象,导致这样的情况出现:两个整型数值10和20,需要创建两个具有不同OID的对象。这种模型需要生成很多的对象标识符,很不实用。因此,大多数的面向对象数据库系统允许有对象和值两种表示方法,即每个对象必须有一个永远不变的OID,但是值没有OID,值只是代表它自己。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有