- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象数据模型-Read
Hongyan Liu @ Tsinghua University 第4章 面向对象数据模型 刘红岩 清华大学 管理科学与工程系 liuhy@sem.tsinghua.edu.cn 主要内容 4.1对象和类 4.2 关联 4.3关联类 4.4 概括 4.5 多态和重载 4.6 聚合和合成 第4章 对象和类 对象 对象(object):是现实世界中与某应用相关的客观存在的人、事、物或抽象的概念。与ER数据模型中的实体对应。每一个对象都赋予唯一的一个标识(identity) 对象的静态特性(state): 相当于实体的属性和取值 对象的行为特性(behavior): 用于读或改变对象的每个特性的取值的操作(operation) 例如:每个销售员可以看作一个对象 工作证号、姓名、性别、出生日期、电话号码 操作calc_age(): 计算年龄; 操作change_telno(): 更改电话号码 类 类(class)是一组具有相同属性和行为特性的对象。每个对象是类的一个实例,而类是一组对象型的抽象 类用一个矩形框表示。矩形框内要表示类的名字、属性,还要表示对类的一系列操作 类 主键属性的后面标上{PK},与实体不同的是,如果类的属性中不存在主键,没有必要人为创建一个主键属性 在派生属性的前面加上一个斜线/,如SalesPerson的age属性对象的图形表示 上半部分是对象的名字: 对象名:类名 下半部分是对象的各个属性 及其取值 类 操作:构造器、查询和更新3类 构造器是每个类都有的操作类型,它的功能是为类创建一个新的对象,并对该对象进行初始化,即为它的每个属性赋予初始值。构造器操作一般不显式列在类的操作列表中 查询类的操作只是读取对象的当前静态特性,而不改变每个属性的取值。操作calc_age()是一个查询类的操作 更新类的操作通常是改变对象的属性值的操作。例如,操作change_telno() 是一个更新类的操作 类 操作可以没有显式的参数:calc_age()、get_sex()、change_telno(),隐含的参数是所在类的对象 操作还可以有其他的参数,例如类SalesPerson的一个操作change_branch(Branch),该操作完成将一个销售员从一个销售分支机构调到另一个的功能,因此,除了隐含的销售员对象作为参数外,还有一个Branch 类对象作为参数, 该操作将SalesPerson类和Branch类建立了一个联系,在面向对象模型中这种类之间的联系称为关联(association) 第4章 关联 关联 关联:表示一个或多个类之间的联系。与 ER数据模型中的联系的概念是一致的。如果都用UML表示,关联的约束和表示方法与ER数据模型中的联系一样 第4章 关联类 关联类 当关联具有属性、操作或者参与其它的关联时,可以将此关联看作一个关联类(association class) 关联类的表示方法如同ER图中联系的属性的表示方法一样,用一个矩形框表示 订单和产品之间的 关联及其属性表示 关联类 关联类可以象其它的类一样与参与其它的关联 此时,与ER中的聚集概念类似 类图与对象图 用UML图形表示的类及其类之间的关联的图形称为类图(class diagram)。与类图对应,为了表示类图当前的实例,对象图是表示对象以及对象之间关联的图形 第4章 概括 概括 将若干个类按照其共有的属性、操作和关联抽象为一个更通用的类的过程,称为概括。被概括的类称为子类(subclass),概括出的类称为超类(superclass)。子类和超类之间存在一种称为is-a的联系,表达了“(子类)是(超类)”的语义 与ER数据模型中的概括类似 概括 子类的划分是依据职员的类型,即employee type是该概括的辨别符,列在约束类型的下面 约束的类型是不相交(Or)部分(Optional)特殊化 类层次图 表达类之间概括或特殊化关系的图形称为类层次图。超类是对子类共有属性、操作和关联的抽象,因此超类的每一个子类都将继承超类的所有属性、操作和关联,并且这种继承具有传递性,即一个子类将继承位于不同层次上的它的所有直接或间接超类的属性、操作和关联。 第4章 多态和重载 抽象类 抽象类(abstract class) 是没有直接实例对象的类,它的所有对象都是其子类的对象 如:Bed 斜体表示或 加上{abstract} 抽象操作 抽象操作:只定义操作的参数个数、参数类型以及返回值的类型,而不定义该操作的实现细节,即方法(method),如类Bed的操作calc_fee(Patient) 操作的方法由该超类的两个具体类提供。 类SingleRoomBed和类DoubleRoomBed分别有一个与抽象类里同名的操作,分别
文档评论(0)