第二周_面向对象概念和分析.pptVIP

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二周_面向对象概念和分析

第二章 面向对象的软件开发(Object-Oriented Software Development) 任课老师:黄武 提纲 面向对象技术概述 面向对象分析(OOA) 面向对象设计(OOD) 面向对象程序(OOP) 面向对象语言(OOL) 1. 面向对象技术概述 面向对象技术的基本思想是:以接近人认识客观世界的方法对一个软件系统进行分析,设计 具体讲就是对问题域进行自然分割,以接近人类思维的方式建立问题域模型,从而使设计出的软件尽可能地描述现实世界,构造出模块化、可重用、可维护性的软件,并能控制软件的复杂性和降低开发维护费用 1.1 面向对象技术的基本概念 面向对象技术包含以下基本概念 类(Class)——类是对现实世界中具有相同性质的一类事物的抽象,比如人,飞机,汽车等等。类不代表某个个体,其主要特点是抽象。在程序设计中无空间 对象(Object)——对象是类中的一个具体个体,比如蒋文涛同学,王晓娜同学等。程序设计中对象占据一定空间,具有自己的状态信息和操作函数 1.1 面向对象技术的基本概念 属性(Property)——表示类的特征信息,对象的内部状态,根据可见性可以分为公有属性、私有属性等,通常为私有 方法(Method)——对对象的内部状态进行操作的函数 接口(Interface)——外部与对象进行交互的手段,是一类特殊的方法 1.1 面向对象技术的基本概念 关联(Association)——表示不同类之间的关系,比如司机与汽车,客户与订单,酒店与旅客等等构成了不同的关系 聚集(Aggregation)——聚集是一种特殊形式的关联,它表示类之间的关系是整体与部分的关系,比如人与手足,汽车与方向盘,公司与职员等 关联与聚集是类之间的静态关系 1.1 面向对象技术的基本概念 对象之间的动态关系 消息传递(Message sending)——消息传递是对象之间动态联系的手段,分为同步消息和异步消息 面向对象方法的一个原则就是通过消息进行对象之间的通信,一个对象通过消息通知其他对象,并且将相关的信息带到其他对象 1.1.1 类对象举例 class car { // 类的定义 int color; // 颜色 属性 int weight; // 重量 属性 point position; // 位置 属性 void move (int x, int y) // 汽车移动 方法 { position.x += x; position.y += y; } void draw(int x, int y) // 画一辆汽车 方法 {…} } car blackcar; // 定义一个blackcar,blackcar称为对象 1.2 面向对象设计与结构化设计不同 结构化的设计将上层功能分解为具体实现的下层模块(细节),从而造成上层的业务逻辑过分依赖于下层实现细节,当用户需求(通常对应上层的功能)更改时,造成下层细节的更改,这通常是困难的 比如,我们作通讯软件,上层是读取数据,下层为具体读取串口数据的函数read_com,如果我们现在要读取并口数据,那么上层需要修改调用函数,下层则需要重新构建read_parallel 1.2 面向对象设计与结构化设计不同 面向对象设计创建的抽象不依赖于任何细节,而细节则高度依赖于上层的抽象 比如刚才的通讯软件我们建立一个通讯类,然后通过继承生成串口类和并口类,我们在具体通讯时,只要根据不同的要求(消息中携带的参数信息)生成不同的具体通讯对象就可以了,上层的调用和生成关系不变 1.2 面向对象设计与结构化设计不同 意大利建筑师戴维·菲舍 1.3 面向对象技术的三个主要特征 封装性(Encapsulation)——将对象的属性和方法结合成一个独立的系统,隐藏对象的内部细节不受外界的干扰,并且保护客户端软件 封装使一个对象形成了两个部分:接口部分和实现部分 1.3.1 面向对象技术的继承性 继承性(Inheritance)——是某个类获得另一个类的部分或全部特征,它是类抽象以及代码可重用的重要手段,通过继承,子类可以重用父类的代码 比如,我们定义飞机类,我们可以在飞机类的基础根据飞机的用途定义民航飞机,军航飞机,其它飞机 1.3.2 面向对象技术的多态性 多态性(Polymorphism)——是相同的方法产生不同的结果。多态机制使具有不同内部结构的对象可以共享相同的外部接口,通过这种方法减少代码的复杂度 这种方法对应于程序的晚绑定技术,相当于根据上下文环境来调用不同对象的相同功能函数,造成不同的处理结果 1.4 面向对象技术特征举例 class car { // 封装性 private: int x, y; public: virt

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档