- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 10.1 面向对象
10.1 面向对象的基本知识 1) 传统软件开发方法的问题 模型阶段性 模型的顺序性 以功能为主的方法 模块的封装性、可重用性差 没有很好解决处理模型和数据模型、 功能模型和设计模型之间的鸿沟. 2) 面向对象技术的由来 60年代末,挪威奥斯陆大学和挪威计算中心研制的(由Ole-Jone Dahl提出):SIMULA语言---有关类的概念,创建了第一个OO系统。 70年代,G.Booch在研究Ada软件开发中,提出了OO思想,Ada的程序包,具有对象的特征,是一个基于对象的语言。 76年,美国Xerox研究中心的A.Key推出:Smalltalk72---有对象的概念 78年推出Smalltalk76---有类的概念 81年推出Smalltalk80和环境,全面体现了OO程序设计语言的特征 4) 面向对象的概念 面向对象=对象+类+继承+通信 (Coad和Yourdon) 面向对象的基本概念 (1)对象(Object) 任何事物都是对象 (2) 类(Class) 类是具有相同属性(Attribute)和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述。 一个类可以形成一个层次结构。 一般类(general class) 特殊类(special class) (3) 继承(inheritance) 特殊类的对象拥有一般类的全部属性 与服务称作特殊类对一般类的继承。 类::=(ID, DD, OI, ITF, INH) (4) 消息(message) 消息是向对象发出的服务请求,也是 一个操作的请求,它要求系统的某个对象 完成它指定的操作。 关键性概念 (1) 抽象(abstraction) 忽略事物非本质特征,找出事物的共性. 抽象(abstract) 抽象是不能被直接实例化的类,该类 没有实现操作。 (2) 封装(Encapsulation) 把对象的属性和服务结合成一个独 立的系统单位,并尽可能隐蔽对象的 内部细节。 具有封装性的条件: 有一个清晰的边界。 有确定的接口(即协议) 受保护的内部实现 (3) 多态性 (Polymorphism) 多态性表示了对象属于多个类的能力。 在类等级的不同层次中可以共享(公用) 一个行为(方法)的名字。 重载(overloading) 函数重载:同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字。 运算符重载:同一个运算符可以施加于不同类型的操作数。 (4) 永久对象(persistent object) 对象的生存期可以超越程序的 执行时间而长期存在的对象. 5 ) 面向对象的符号表示 * * 面向对象技术 (Object Oriented Technology) 软件工程研究室 第10章 Booch Rumbaugh Jacobson Rational 3) 面向对象的范型 喷泉模型 (fountain model) 1990年, B.Henderson seller和J.M.Eduarols 图 10-1 喷泉模型 验收入库 编码 设计 调试 分析 聚集 概括 Object::=(OID,DS,OS,MI) 雇员 Pay() 经理 Pay() 推销员 Pay() 技工 Pay() 销售部经理 Pay() 图10-2 多态性 int a,b ; float c,d ; complex e, f ; …… a +b ; c+d ; e+f ; Int Maximum(int a1,int a1,int a3 ); double Maximum(double d1,double d2,double d3); char Maximum(char c1,char c2,char c3); 图10-3UML的符号 *
文档评论(0)