(9)--3 面向对象基础知识2-面向对象的核心元素-面向对象与UML.pdf

上传人:奉*** 文档编号:96640234 上传时间:2024-02-01 格式:PDF 页数:32 大小:1.16MB
返回 下载 相关 举报
(9)--3 面向对象基础知识2-面向对象的核心元素-面向对象与UML.pdf_第1页
第1页 / 共32页
(9)--3 面向对象基础知识2-面向对象的核心元素-面向对象与UML.pdf_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《(9)--3 面向对象基础知识2-面向对象的核心元素-面向对象与UML.pdf》由会员分享,可在线阅读,更多相关《(9)--3 面向对象基础知识2-面向对象的核心元素-面向对象与UML.pdf(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 面向对象与面向对象与UML Object-Oriented and UML 面向对象基础知识面向对象基础知识 面向对象基础面向对象基础 面向对象的核心元素面向对象的核心元素 根据根据Coad 和和 Yourdon 的定义,按照以下的定义,按照以下4个概念设计和实个概念设计和实现的系统,称为是面向对象的。现的系统,称为是面向对象的。面向对象面向对象=对象对象(object)+类类 (classification)+继承继承(inheritance)+通信通信(communication with messages)什么是面向对象?什么是面向对象?面向对象的核心元素面向对象的核心元素 对象对象

2、类类 抽象抽象 封装封装 继承继承 接口接口 多态性多态性 消息消息 结构与连接结构与连接 什么叫问题域?什么叫问题域?开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称为开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称为该软件的问题域。该软件的问题域。例如:教务管理系统例如:教务管理系统 不同问题域中同一实体描述的角度可能不同。不同问题域中同一实体描述的角度可能不同。例如:学生例如:学生 问题域的范围也对软件开发的复杂程度有一定的影响。问题域的范围也对软件开发的复杂程度有一定的影响。问题域问题域 面向对象的核心元素面向对象的核心元素-对象对象 客观世界里的任何实体都可以被称

3、为客观世界里的任何实体都可以被称为对象对象。软件中的对象是与应用问题(问题域或实现域中)有一定关联的某个事物,软件中的对象是与应用问题(问题域或实现域中)有一定关联的某个事物,是事物的一种是事物的一种抽象描述抽象描述。不同的角度和不同的问题域对一个对象的描述有不同的角度和不同的问题域对一个对象的描述有所不同。所不同。对象是一个封装对象是一个封装数据属性和操作行为数据属性和操作行为的实体。的实体。面向对象的核心元素面向对象的核心元素-对象对象 对象可以是具体的、有形的物,也可以是无形的事物或概念。对象可以是具体的、有形的物,也可以是无形的事物或概念。面向对象的核心元素面向对象的核心元素-对象对象

4、 对象的标识(名字)对象的标识(名字)对象的状态(属性描述和属性值)对象的状态(属性描述和属性值)对象的行为(操作行为)对象的行为(操作行为)no1 no2 no3 面向对象的核心元素面向对象的核心元素-对象对象 UML中的对象表示:对象名下有下划线中的对象表示:对象名下有下划线 J Clark:Professor:Professor1.命名对象命名对象 2.匿名对象匿名对象 对象名对象名 对象名:类名对象名:类名:类名:类名 面向对象的核心元素面向对象的核心元素-类类 类是对一类具有相同特征的对象的描述类是对一类具有相同特征的对象的描述 类共享相同的属性、操作、关系,以及用来描述对象集合类共

5、享相同的属性、操作、关系,以及用来描述对象集合的语义,并定义每个对象的结构和行为。的语义,并定义每个对象的结构和行为。类类(Class)封装了数据和行为封装了数据和行为 面向对象的核心元素面向对象的核心元素-类类 类的属性类的属性 属性是类的特征或特性。属性是类的特征或特性。属性的值是某一特定对象的属性的值是某一特定对象的属性值,不同对象属性值可以有所不同。属性值,不同对象属性值可以有所不同。类类的行为(的行为(操作、操作、方法)方法)操作访问或修改对象的属性值。操作访问或修改对象的属性值。(封装性)(封装性)一个类的所有对象都可以使用在这个类中定义的操作。一个类的所有对象都可以使用在这个类中

6、定义的操作。银行帐户类银行帐户类属性属性 帐号帐号 银行名称银行名称 拥有者拥有者 金额金额 Mary的银行帐户属性值的银行帐户属性值 帐号帐号=12345678 银行名称银行名称=First National Bank 拥有者拥有者=Mary Smith 金额金额=$1024.48 类类 对象对象 面向对象的核心元素面向对象的核心元素-类类 属性和操作取决于视点属性和操作取决于视点(问题域)问题域)从从维修人员维修人员的角度的角度 马达类型马达类型 传动类型传动类型 维修记录维修记录 从从销售人员销售人员的角度的角度 型号型号 价格价格 颜色颜色 里程数里程数 一辆汽车具有的操作?一辆汽车具

7、有的操作?从从销售人员销售人员的角度的角度 处理客户定单处理客户定单 准备销售合同准备销售合同 加入清单加入清单 从清单中删除从清单中删除 从从维修人员维修人员的角度的角度 测试刹车测试刹车 修理刹车修理刹车 转动轮胎转动轮胎 检查马达速度检查马达速度 一辆汽车具有的属性?一辆汽车具有的属性?面向对象的核心元素面向对象的核心元素-抽象抽象 抽象是抽取对问题域有帮助的对象属性和行为。抽象是抽取对问题域有帮助的对象属性和行为。抽象是从众多的事物中抽取出共同的、本质性的特征抽象是从众多的事物中抽取出共同的、本质性的特征。问题域不同,抽象程度不同,抽象结果也不同。问题域不同,抽象程度不同,抽象结果也不

8、同。计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 面向对象的核心元素面向对象的核心元素-封装封装 封装的含义封装的含义 数据抽象(对象属性和方法的结合)数据抽象(对象属性和方法的结合)信息隐藏信息隐藏 封装的目的封装的目的 将对象的使用者和对象的设计者分开,使用者不必知道行为实现的细节,将对象的使用者和对象的设计者分开,使用者不必知道行为实现的细节,只需用设计者提供的消息来访问该对象。只需用设计者提供的消息来访问该对象。把定义和实现分开,可以大大提高软件的可维护性、可修改性。把定义和实现分开,可以大大提高软件的可维护性、可修改性。可见性问题可见性问题 public:+protecte

9、d:#private:-friend 友元友元 面向对象的核心元素面向对象的核心元素-继承继承 继承继承指子类自动获得父类中定义的指子类自动获得父类中定义的数据、数据、方法和关系,方法和关系,并可以添加新的成员的机并可以添加新的成员的机制。制。起始类称为起始类称为基类、超类、父类或者泛化基类、超类、父类或者泛化类类,而继承类称为,而继承类称为派生类、子类或者特派生类、子类或者特化类化类。继承可以帮助我们借助已知和熟悉的事继承可以帮助我们借助已知和熟悉的事物理解新的事物。物理解新的事物。继承可提高软件的继承可提高软件的可复用性可复用性。面向对象的核心元素面向对象的核心元素-继承继承 继承简化了对

10、现实世界的描述,定义子类时只需专注于自己特有的属继承简化了对现实世界的描述,定义子类时只需专注于自己特有的属性和操作。性和操作。家用电器家用电器 洗洗 衣衣 机机 电电 视视 机机 电电 冰冰 箱箱 微微 波波 炉炉 基类(父类):具有开关、基类(父类):具有开关、电线等属性和开机、关机等电线等属性和开机、关机等操作。操作。派生类(子类):具有除父派生类(子类):具有除父类中属性以外的特殊属性和类中属性以外的特殊属性和操作。操作。继承继承 面向对象的核心元素面向对象的核心元素-继承继承 继承具有传递性。继承具有传递性。继承关系表示类之间的层次关系。继承关系表示类之间的层次关系。类间具有共享特征

11、类间具有共享特征 类间具有差别或新增部分类间具有差别或新增部分 类间具有层次关系类间具有层次关系 继承关系是“继承关系是“is a”或“或“kind of”的关系。的关系。面向对象的核心元素面向对象的核心元素-继承继承 继承的好处继承的好处 通过继承可实现通过继承可实现代码复用和扩展代码复用和扩展,可降低软件开发和维护的费用,继承,可降低软件开发和维护的费用,继承是是OO技术和非技术和非OO技术的一个很明显的区别。技术的一个很明显的区别。继承的另一个好处是可以保证类之间的一致性,父类可以为所有的子类继承的另一个好处是可以保证类之间的一致性,父类可以为所有的子类定制规则,子类必须去遵守这些规则。

12、定制规则,子类必须去遵守这些规则。如如C+中的虚函数(抽象类中的虚函数(抽象类-纯纯虚函数),虚函数),Java中的接口。中的接口。子类继承一个或多个父类,从而实现了不同的抽象层次,实现子类继承一个或多个父类,从而实现了不同的抽象层次,实现多态多态处理。处理。面向对象的核心元素面向对象的核心元素-继承继承 继承可分单继承和多继承继承可分单继承和多继承。单重继承单重继承:子类只有一个父类子类只有一个父类 多重继承:多重继承:子类可以有多个父类子类可以有多个父类 面向对象的核心元素面向对象的核心元素-接口接口 接口是一组没有相应方法实现的操作,非常类似于仅包含接口是一组没有相应方法实现的操作,非常

13、类似于仅包含抽象方法的抽象类。抽象方法的抽象类。接口是对对象行为的描述,但是并不给出对象的实现和状接口是对对象行为的描述,但是并不给出对象的实现和状态。(态。(通俗的说,接口只是说明函数应该做什么通俗的说,接口只是说明函数应该做什么what,但没有定义函数如何做但没有定义函数如何做how。)接口一般只包含操作而不包含属性。接口一般只包含操作而不包含属性。面向对象的核心元素面向对象的核心元素-接口接口 一个类可以实现多个接口。一个接口可以被多个类实现。一个类可以实现多个接口。一个接口可以被多个类实现。使用使用接口比使用抽象类要安全得多,因为它可以避免许多接口比使用抽象类要安全得多,因为它可以避免

14、许多与多重继承相关的问题。与多重继承相关的问题。如果如果需要几个类共享公共基类中没有的一些特性,且希望需要几个类共享公共基类中没有的一些特性,且希望确保每个类自己实现这些特性,就应使用接口。确保每个类自己实现这些特性,就应使用接口。Java和和C#等新型编程语言允许类实现多个接口,但只能继等新型编程语言允许类实现多个接口,但只能继承一个通用或抽象类。承一个通用或抽象类。计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 面向对象的核心元素面向对象的核心元素-多态性多态性 多态性定义:多态性定义:同一操作作用于不同的对象,可以有不同的解释,产生不同的同一操作作用于不同的对象,可以有不同的解释

15、,产生不同的执行结果。执行结果。多态性是“一个接口,多种实现方法”。多态性是“一个接口,多种实现方法”。面向对象的核心元素面向对象的核心元素-多态性多态性 使用接口可以实现使用接口可以实现多态多态。接口支持“接口支持“即插即用(即插即用(plug and play)”的结构。”的结构。实现关系实现关系 管状体管状体 角锥体角锥体 立方体立方体 面向对象的核心元素面向对象的核心元素-多态性多态性 多态性的实现方式多态性的实现方式 多态性多态性的优势的优势 面向对象技术正是利用多态提供的动态行为特征,来封装变化,适面向对象技术正是利用多态提供的动态行为特征,来封装变化,适应变更,以达到系统的稳定。

16、应变更,以达到系统的稳定。增加了面向对象软件系统的灵活性。增加了面向对象软件系统的灵活性。进一步减少了信息冗余。进一步减少了信息冗余。提高了软件的可重用性和可扩展性。提高了软件的可重用性和可扩展性。通过接口实现多态性通过接口实现多态性 通过继承实现多态性通过继承实现多态性 通过抽象类实现的多态性通过抽象类实现的多态性 面向对象的设计原则充分体现了多态性的运用。面向对象的设计原则充分体现了多态性的运用。面向对象的核心元素面向对象的核心元素-消息消息 每个对象都至少与另一个对象联系,孤立的对象是无用的。每个对象都至少与另一个对象联系,孤立的对象是无用的。对象一旦建立了联系,就可以协作完成复杂的任务

17、。对象一旦建立了联系,就可以协作完成复杂的任务。对象之间是通过对象之间是通过相互发送消息相互发送消息进行协作的。进行协作的。消息消息是向对象发出的服务请求。是向对象发出的服务请求。消息传递机制:消息传递机制:一个对象发送一个操作消息给另一个对象,接收消息的对一个对象发送一个操作消息给另一个对象,接收消息的对象就执行此操作。象就执行此操作。消息的属性:消息的属性:消息名、接受对象的标志、服务(方法)标志、输入信息、消息名、接受对象的标志、服务(方法)标志、输入信息、回答信息等回答信息等。面向对象的核心元素面向对象的核心元素-消息消息 一个对象能够接收多个形式、内容不同的消息。一个对象能够接收多个

18、形式、内容不同的消息。相同形式的消息可以发送给不同的对象。相同形式的消息可以发送给不同的对象。不同的对象对于形式相同的消息可以有不同的解释,做出不同的反应。不同的对象对于形式相同的消息可以有不同的解释,做出不同的反应。(多态形式多态形式)注意:消息和函数存在注意:消息和函数存在区别区别 消息可以包括消息可以包括同步消息同步消息和和异步异步消息消息。如果消息是异步的,则一个对象发送消息后,就继续自己的活动,如果消息是异步的,则一个对象发送消息后,就继续自己的活动,不用等待消息接收者返回控制,而函数调用往往是同步的,消息不用等待消息接收者返回控制,而函数调用往往是同步的,消息发送者要等待接收者返回

19、。发送者要等待接收者返回。面向对象的核心元素面向对象的核心元素-结构与连接结构与连接 问题域中对象关系之间的描述问题域中对象关系之间的描述 对象的分类关系、对象之间的组成关系,对象属性之间的静态关系,对象的分类关系、对象之间的组成关系,对象属性之间的静态关系,对象行为之间的动态关系。对象行为之间的动态关系。面向对象方法用以下四种方法描述对象之间的关系。面向对象方法用以下四种方法描述对象之间的关系。(1)一般)一般/特殊结构特殊结构(2)整体整体/部分结构部分结构(3)实例连接)实例连接(4)消息连接)消息连接 面向对象的核心元素面向对象的核心元素-结构与连接结构与连接(1)一般)一般/特殊结构

20、又称做分类结构特殊结构又称做分类结构,是一组由一般,是一组由一般/特殊关系特殊关系的类所组成的结构的类所组成的结构。(。(UML中的泛化关系)中的泛化关系)多继承多继承 网络结构网络结构 单继承单继承 树形结构树形结构 面向对象的核心元素面向对象的核心元素-结构与连接结构与连接(2)整体)整体/部分结构又称为组成、部分结构又称为组成、组合结构组合结构,描述对象之间的,描述对象之间的组成关系。组成关系。面向对象的核心元素面向对象的核心元素-结构与连接结构与连接(3)实例连接)实例连接反映对象和对象间的静态关系。反映对象和对象间的静态关系。可通过对象的属性表达出来。可通过对象的属性表达出来。/司机类司机类 Class Driver /.;/汽车类汽车类 Class Car Driver d;/.;面向对象的核心元素面向对象的核心元素-结构与连接结构与连接(4)消息连接)消息连接描述对象之间的动态联系。描述对象之间的动态联系。一个对象需要另一个对象对它提供服务。一个对象需要另一个对象对它提供服务。消息消息连接是有连接是有向,连接向,连接从消息发送者指向消息接收者。从消息发送者指向消息接收者。可通过对象之间可通过对象之间发送消息。发送消息。本章小结本章小结

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁