第四章 面向对象的技术
第 四 章 面向对象的技术
4.1面向对象的基本概念 41面向对象的基本欐念 面向对象的思想最初出现于挪威奥斯陆大学和挪威 计算机中心共同研制的 Simula67语言中,其后,随着位 于美国加利福尼亚的 Xerox研究中心推出的 Smalltalk- 76和80语言,面向对象的的程序设计方法得到了比较完 善的实现。此后,面向对象的概念和应用已超越了程序 设计和软件开发,扩展到很宽的范围;如数据库系统, 交互式界面,分布式系统,网络管理结构和人工智能等 领城。一些新的工程概念及其实现,如并发工程,综合 集成工程等也应用到面向对象的概念,所以面向对象的 技术已成为软件开发的一种新方法,新技术
4.1 面向对象的基本概念 面向对象的思想最初出现于挪威奥斯陆大学和挪威 计算机中心共同研制的Simula 67语言中,其后,随着位 于美国加利福尼亚的Xerox研究中心推出的Smalltalk--- 76和80语言,面向对象的的程序设计方法得到了比较完 善的实现。此后,面向对象的概念和应用已超越了程序 设计和软件开发,扩展到很宽的范围;如数据库系统, 交互式界面,分布式系统,网络管理结构和人工智能等 领域。一些新的工程概念及其实现,如并发工程,综合 集成工程等也应用到面向对象的概念,所以面向对象的 技术已成为软件开发的一种新方法,新技术。 4.1 面向对象的基本概念
4.1.1什么是面向对象的开发方法 4.1.1什么是面向对象的开发方法 00SD (Object-Oriented Software Deve/opment )IaE 一种把面向对象的思想应用于软件开发过程,指导开发活动 的系统方法 面向对象的方法是一种运用对象、类、继承、封装、聚 、消息传送、多态性等概念来构造系统的软件开发方法。 什么是面向对象 根据Coad和 Yourdon的定义,按照以下4个概念设计 和实现的系统,称为是面向对象的。 面向对象=对象( object +类( classification) +继承( inheritance) +通信( communication with messages
4.1.1 什么是面向对象的开发方法 4.1.1 什么是面向对象的开发方法 OOSD (Object-Oriented Software Development)法是 一种 把面向对象的思想应用于软件开发过程,指导开发活动 的系统方法。 面向对象的方法是一种运用对象、类、继承、封装、聚 合、消息传送、多态性等概念来构造系统的软件开发方法。 什么是面向对象 根据Coad 和 Yourdon 的定义,按照以下4个概念设计 和实现的系统,称为是面向对象的。 面向对象=对象 (object) +类 (classification) +继承(inheritance) +通信 (communication with messages)
4.1.1什么是面向对象的开发方法 面向对象技术的特点 1、对软件开发过程所有阶段进行综合考虑。 2、软件生存期各阶段所使用的方法、技术具有高度的连续性, 用符合人类认识世界的思维方式来分析、解决问题 3、将OOA、O0D、OOP有机地集成在一起。 OOA Object-Oriented Analysis OOD( Object-Oriented Design) OOP( Object-Oriented Program
面向对象技术的特点 1、对软件开发过程所有阶段进行综合考虑。 2、软件生存期各阶段所使用的方法、技术具有高度的连续性, 用符合人类认识世界的思维方式来分析、解决问题。 3、将OOA、OOD、OOP有机地集成在一起。 OOA(Object-Oriented Analysis) OOD(Object-Oriented Design) OOP(Object-Oriented Program) 4.1.1 什么是面向对象的开发方法
4.1.2面向对象的基本概念 4.1.2面向对象的概念 理解面向对象的基本概念对于学习和掌握面向对象的开 发方法是十分重要的。 对象(0 bject) 类( Class) 继承( nheritance) 消息( nformation) ◇多态性(PO1 amorphism) 永久对象( Persistent object)
理解面向对象的基本概念对于学习和掌握面向对象的开 发方法是十分重要的。 4.1.2 面向对象的概念 4.1.2 面向对象的基本概念 类(Class) 对象(Object) 消息(Information) 多态性(Polymorphism) 继承(Inheritance) 永久对象(Persistent object)
4.1.2面向对象的基本概念 1、对象(0 b ject 对象( Object)是客观事物或概念的抽象表述,即对客观 存在的事物的描述统称为对象,对象可以是事、物、或抽象 概念,是将一组数据和使用该数据的一组基本操作或过程 封装在一起的实体。 对象都存在一定的状态( state),内部标识( identity) 可以给对象定义一组运算( operation)对象通过其运算所 展示的特定行为称为对象行为( behavior)对象本身的性质 称为属性( attribute),对象将它自身的属性及运算“包装起 来”,称为“封装”( encapsulation) 对象的最基本的特征是封装性和继承性
1、 对象(Object) 对象(Object)是客观事物或概念的抽象表述,即对客观 存在的事物的描述统称为对象,对象可以是事、物、或抽象 概念 ,是将一组数据和使用该数据的一组基本操作或过程 封装在一起的实体。 对象都存在一定的状态(state),内部标识(identity), 可以给对象定义一组运算(operation),对象通过其运算所 展示的特定行为称为对象行为(behavior),对象本身的性质 称为属性(attribute),对象将它自身的属性及运算“包装起 来” ,称为“封装”(encapsulation). 对象的最基本的特征是封装性和继承性。 4.1.2 面向对象的基本概念
4.1.2面向对象的概念 2、类( class) 类又称对象类( Object Clas),是一组具有相同属性和 相同操作的对象的集合。在一个类中,每个对象都是类的实例 ( instance),它们都可以使用类中提供的函数。 类具有属性,用数据结构来描述类的属性,类具有操作 它是对象的行为的抽象,操作实现的过程称为方法( method 方法有方法名,方法体和参数。 由于对象是类的实例,在进行分析和设计时,通常把注 意力集中在类上,而不是具体的对象上
2、 类(Class) 类又称对象类(Object Class),是一组具有相同属性和 相同操作的对象的集合。在一个类中,每个对象都是类的实例 (instance) ,它们都可以使用类中提供的函数。 类具有属性,用数据结构来描述类的属性,类具有操作, 它是对象的行为的抽象,操作实现的过程称为方法(method) , 方法有方法名,方法体和参数。 4.1.2 面向对象的概念 由于对象是类的实例,在进行分析和设计时,通常把注 意力集中在类上,而不是具体的对象上
4.1.2面向对象的概念 对象和类的描述 对象和类一般采用“对象图和“类图”来描述 几何对象 类名 人 文件 颜色 类属性 姓名:字符串 文件名 位置 年龄:整型 文件大小 移动(deta:矢量) 运算 改换工作 最近更新日期 选择(P:指针型):尔型 改换地址 打印 旋转(角度) 图4.1对象类的描述 人 对象 李军 张红兵 24 程序员 绘图员 无 人民路8号 图4.2对象的描述
几何对象 颜色 位置 移动(delta:矢量) 选择(P:指针型):布尔型 旋转(角度) 图4.1 对象类的描述 人 姓 名:字符串 年 龄: 整 型 改换工作 改换地址 文件 文件名 文件大小 最近更新日期 打印 (人) 张红兵 28 绘图员 人民路8号 (人) 李军 24 程序员 无 图4.2 对象的描述 对象和类的描述 对象和类一般采用“对象图” 和 “类图” 来描述。 类名 属性 运算 对象 类 4.1.2 面向对象的概念 对象和类的描述
4.1.2面向对象的概念 3、继承( Inheritance) 继承是使用现存的定义作为基础,建立新定义的技术。是 父类和子类之间共享数据结构和方法的机制,这是类之间的一 种关系。在定义和实现一个类的时候,可以在一个已经存在的 类的基础上来进行,把这个已经存在的类所定义的内容做为自 己的内容,并加入若干新内容。 继承性分 单重继承:一个子类只有一个父类。即子类只继承一个父类 的数据结构和方法。 多重继承:一个子类可有多个父类。继承多个父类的数据结 构和方法。 基类 现存类定继承 新类定义 子类A子类B 父类(基类) 子类(派生类) 图44继承性描述 图4.3继承性
3、 继承 (Inheritance) 继承是使用现存的定义作为基础,建立新定义的技术。是 父类和子类之间共享数据结构和方法的机制,这是类之间的一 种关系。在定义和实现一个类的时候,可以在一个已经存在的 类的基础上来进行,把这个已经存在的类所定义的内容做为自 己的内容,并加入若干新内容。 继承性分: 单重继承:一个子类只有一个父类。即子类只继承一个父类 的数据结构和方法。 多重继承:一个子类可有多个父类。继承多个父类的数据结 构和方法。 4.1.2 面向对象的概念 基类 子类A 子类B 图4.4 继承性描述 现存类定义 父类(基类) 新类定义 子类(派生类) 继 承 图 4.3 继承性
4.1.2面向对象的概念 4、消息( Message) 消息就是向对象发出的服务请求(互相联系、协同工 作等)。对象之间的联系可表示为对象间的消息传递,即 对象间的通讯机制。 一个消息应该包含以下信息:消息名、接收消息对象的 标识、服务标识、消息和方法、输入信息、回答信息。 在对象的操作中当一个消息发送给某个对象时,消息 包含接收对象去执行某种操作的消息 注意:在并发系统中,多个控制线程( Thread of Contro)并发执行,情况就复杂得多,消息可以是发出服 务请求、提交数据、发布事件信息、或是传递同步控制信
4、消息(Message) 消息就是向对象发出的服务请求(互相联系、协同工 作等)。对象之间的联系可表示为对象间的消息传递,即 对象间的通讯机制。 一个消息应该包含以下信息:消息名、接收消息对象的 标识、服务标识 、消息和方法、输入信息、回答信息。 注意:在并发系统中,多个控制线程(Thread of Control)并发执行,情况就复杂得多,消息可以是发出服 务请求、提交数据、发布事件信息、或是传递同步控制信 息。 在对象的操作中当一个消息发送给某个对象时,消息 包含接收对象去执行某种操作的消息。 4.1.2 面向对象的概念