Ch09面向对象方法学引论.ppt

  1. 1、本文档共71页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程导论 ( Software Engineering ) 第9章:面向对象方法学引论 9.1 面向对象方法学概述 9.1.1 面向对象方法学的要点 面向对象方法学的基本原则:尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。 客观世界中的实体——问题域中的对象; 计算机中的实体——解空间对象; 解空间对象取决于程序设计语言: 汇编语言的对象:存储单元; 面向过程的高级语言的对象:变量、数组、记录、文件等; 面向对象的高级语言的对象:除上述元素外,还包括窗体、菜单、按钮、等等。 与传统方法不同,面向对象方法以数据为主线,将数据和操作方法封装在对象中,通过消息请求对象主动执行它的内部操作,改变其内部私有数据。 面向对象方法具有四个要点: A.认为客观世界是由对象组成; B.把所有对象都划分成各种对象类(Class); C.把若干对象类组成一个层次结构的系统(类等级); D.对象彼此间仅通过传递消息互相联系。 OO = Objects + Class + Inheritance + Communication with message 9.1.2 面向对象方法的优点 1.与人们习惯的思维方法一致; 2.稳定性好; 3.可重用性好; 4.较易开发大型软件产品; 5. 可维护性好。 9.1.3 喷泉模型 9.2 面向对象的概念 9.2.1 对象 1)定义1:对象是具有相同状态的一组操作的集合。 2)定义2:对象是对属性值和操作的封装。 3)定义3:对象::= ID, MS, DS, MI 其中,ID是对象的名字;MS是对象中的操作集合;DS是对象的数据集合;MI是对象受理的消息名集合(即对外接口)。 3、对象的特点 1)以数据为中心; 2)对象是主动的; 3)实现了数据封装; 4)本质上具有并行性; 5)模块独立性好。 9.2.2 其他概念 又如:下面C++语言定义的Queue类,可用于实现一个队列(即先进先出的表): Class Queue { int q [100]; int sloc, rloc; public: void init ( ); //成员函数 void qput (int i); int qget( ); }; 类有私有变量(Private)和公有变量(Public)。 缺省时,都属于私有的,只能由类内部其他成员来访问,不能由程序的其他部分来访问。 这是一种实现封装的方法。 实例就是由某个特定的类所描述的一个具体的对象。 如:Circle a ; //声明Circle类实例a Queue Q1, Q2; //声明Queue类实例Q1和Q2 消息就是用来请求对象执行某个处理或回答某些信息的要求。 消息既可以是数据流,也可以是控制流。一条消息可以发送给不同的对象,对消息的解释完全由接收信息的对象来完成,不同的对象对相同形式的消息可以有不同的解释。 与传统程序的“调用/返回”所不同的是,对于传来的消息,对象可以返回相应的回答信息,也可以不返回。 一个消息由三个部分组成: 1)接收信息的对象; 2)信息选择符(即消息名); 3)零个或多个变元(参数)。 如:MyCircle.Show(GREEN); 4、方法(Method) 方法,是对象所能执行的操作。 C++中把方法称为成员函数,如Circle类中定义的成员函数:Show(int color) 6、封装(encapsulation) 封装就是信息隐藏,通过封装对外界隐藏了对象的实现细节。 7、继承(Inheritance) 8、多态性(Polymorphism) 多态性,指子类对象可以象父类对象那样使用,同样的消息既可以发送给父类对象,也可以发送给子类对象。 即不同等级的类,可以公用一个方法的名字。 C++中,多态性是通过虚函数来实现的。在不同层次的类中,虚函数实现算法不同,在运行时根据接收消息的对象所属于的类来决定执行虚函数的版本,称为动态联编。 9、重载(Overloading) 有两种重载: 1)函数重载 指在同一作用域内的若干个参数特征不同的函数可以使用

文档评论(0)

187****5045 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档