* (1)类和对象 类 ? class 对象 ? object 类的定义: class 类名 export 移出特征表 ——列出允许外部访问的变量及例程名 inherit 父类名 rename 特征名 as 新特征名, …… ——列出重新命名的变量及例程名 redefine 特征名, ……; ——列出要在本类重新定义的变量及例程名 父类名…… feature 变量名:类型; …… 例程名(参数表)is do 语句 end …… end * (2)一般-特殊 ? 祖先-子孙 支持多继承,用inherit列出所有父类 实现多态性,允许特征重定义(用redefine) 通过重命名解决命名冲突(用rename) (3)整体-部分 嵌套对象或嵌入指针 * (4)属性、服务 属性 ? 变量 可见性:由移出表控制 移出——外部可见 不移出——本类可见 服务 ? 例程(routine) 可见性:由移出表控制 约束:通过断言表示服务约束 先决条件(require) 后续条件(ensure) 循环不变式( invariant) 支持动态服务 (5)实例连接和消息连接 实例连接?嵌入对象指针(集合) 消息连接?例程调用 * 术语对照 OOA和OOD 对象 object 类 class 属性 attribute 服务 service 一般/特殊 generalization/specialization 整体/部分 whole/part 消息连接 message connection 实例连接 instance connection Eiffel 对象 object 类 class 变量 variable 例程 routine 祖先/子孙 ancestor/descendant 嵌套对象 nested object 例程调用 routine call 嵌入对象指针 nested object pointer * 1、基于对象的语言——Ada Ada是面向程序包的语言 有把变量和过程打包的结构 但不是OOPL,主要因为不支持继承 (1)类,对象?无 但可以把变量和过程打包,在形式上描述类和对象 (2)一般-特殊?无 Ada不支持继承 (3)整体-部分?集合或指针 五、用非OO编程语言实现OOD模型 * (4)属性与服务 属性?变量 以“私有”、“有限私有”(limited private)控制可见性 支持显式的约束 服务?过程,函数 参量的类型可以是参数化的(类属) 例如:x:ArgType 其中x是参量,ArgType是未定的类型,调用时指定。 这使过程、函数可适应多种类型的参量。 程序包说明部分声明的过程函数外部可见 实体部分声明的为私有 支持异步执行的任务 (5)消息连接和实例连接 实例连接?类型指针 消息连接?过程/函数调用 * 2、过程语言——以C为例 (1)类,对象?无 可以用结构定义对象,可通过指针说明应该有哪些函数(不封装) (2)一般-特殊 ?无 可把一般结构嵌入特殊结构 (3)整体-部分 ?指针、嵌套的结构 (4)属性与服务 ?变量、函数 (5)实例连接 ? 指针;消息连接 ? 函数调用 第五部分 面向对象的数据库系统 参考书: 6. 蔡希尧, 陈平. 面向对象技术. 西安: 西安电子科技大学出版社, 1993年11月(第6章) 2.冯玉林,黄涛,倪彬. 对象技术导论. 北京: 科学出版社, 1998年3月(第五章) 术语:数据库、数据库管理系统、数据库系统 一、 引言 数据库技术的发展 网状 数据库 关系型 数据库 面向对象 的数据库 层次 数据库 从文件系统 发展到数据库 具备了:最小冗余、支持共享、独立于应用、高效的检索与更新操作等特点 基于网状数据模型 基于层次数据模型 基于关系数据模型 基于面向对象数据模型 为什么出现面向对象的数据库(OODB)? 数据库应用范围的扩大,数据类型更为复杂,如: CAD应用——二维、三维图形与图象 多媒体应用——文本、图形、图象、声音、视频 复杂、嵌套的数据,超长、变长文本 等等 面向对象程序设计范型的推动 越来越多的应用系统采用面向对象的程序设计范型 传统的数据库不能有效地支持对象存储 面向对象的数据库系统 必须具备的两项特征 ——蔡希尧 (1)支持核心的面向对象数据模型(对象模型); (2)借助对传统数据库之语义的扩充或修改,使之与核心的面向对象数据模型的语义一致,以支持传统数据库中所有的数据库特征。 面向对象数据库管理系统的两种类型 1、在已有的面向对象编程语言基础上增加数据库功能 主要是增加对象的永久存储与检索、并发控制、等功能和可恢复性、一致性(完整性)、可靠性措施 例如:GenStone、ORION、Object
原创力文档

文档评论(0)