lecture 2 面向对象的语言(面向对象).ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
lecture 2 面向对象的语言(面向对象).ppt

Lecture 2:面向对象语言 OOA/OOD应与编程语言无关 选择与分析设计方法一致的编程语言与开发环境,便于实施 100余种,主要讨论与影响OO思想发展有关的几种 Simula67 Smalltalk72、76、78、80、87 eiffel C++ Java 面向对象语言的设计 2.1 面向对象的语言分类 面向对象的语言特征: object creation facility message passing capability class capability inheritance features Anton 比较了69种面向对象的语言 53种是研究项目,16种商业产品 14种基于Lisp, 4种基于C,其余的基于Pascal/Ada/Prolog 2.1面向对象的语言分类 分类:OO语言差异很大, hybrid -- C, CLOS(common lisp object system) 使开发人员从非OO向OO过渡 frame-based -- knowledge-based reasoning 框架—槽—值 frame.jpg KEE(Kunz et al,84), LOOPS(Stefic and Bobrow,86):面向对象、多继承 distributed, concurrent, actor -- parallel computing, C++,Java :多线程,远程对象调用 distributed smalltalk:提出对象proxy object 2.1面向对象的语言分类 除smalltalk、Eiffel和Java,许多商用语言都是Lisp, C和Prolog的扩展 C: C++, Objective C,C# Lisp: CLOS, LOOPS, FLAVORS Prolog: SPOOL(日本,1986), DLP(逻辑+OO) 2.2 面向对象的语言发展 1.初始阶段 代表语言:Simula67 Norway的Dahl 与 Nygaard,1967完成 用于离散事件的模拟,例如,一个十字路口交通情况的模拟,车辆到达率、交通灯的设置、切换时间 Simula有一个用于离散事件模拟的类库 Simula支持类、继承、实例、多态性,支持数据与封装的操作。不支持多继承、类属性 2.完善阶段 代表语言:Smalltalk,Xerox PARC( Palo Alto Research Center,) Alan Kay 发明 面向对象编程思想的创始人之一,他还是笔记本电脑最早的构想者,乔布斯最早从Alan那里获得GUI的概念 Smalltalk基于Alan的博士论文为理论支持,应用自己提出的单独个体(即“细胞”)生物学模型来设计的,个体之间可通过“信息”相互交流;另外,Smalltalk使用“鼠标驱动”的“多窗口环境”,这是图形界面操作系统的雏形。 2.完善阶段 Smaltalk72(Xerox ),76(效率优化),78,80(81年) 一切都是对象,包括类本身 把图形用户界面引入到OO语言中,WIMP 引入了元类,元类是指类的类。相当于抽象类,Java中的abstract类,实例化一些参数就成为一个类。 单用户的系统 支持单继承 由于图形界面、动态绑定,无用内存收集,对硬件要求较高 3 成熟阶段(1) 代表语言: Eiffel, C++,Objective C,CLOS,,Java Eiffel(Bertrand Meyer,1990) 特点:具有描述形式化属性的能力 断言给出前置条件与后置条件:在方法调用前后进行检测 不变量:创建一个对象或调用一个方法时,不变式总应成立。 对断言违背引起异常处理 支持多态性、信息隐藏、并发、类、继承、多继承、类属性、支持自动无用存储单元收集 3 成熟阶段(2) C++ C的扩展,引入了class 数据类型,C代码兼容 支持抽象、继承、自引用、动态绑定 支持运算符重载,如整数与矩阵相承采用相同的符号 友元函数:实现C下的函数调用,但破坏封装性 支持多继承,try/throw/catch模式的异常处理机制 不支持自动无用存储单元收集 指针的使用容易带来运行安全问题 3 成熟阶段(3) Java 纯面向对象的语言 适合web编程,applet程序可以在浏览器中运行 单继承,自动内存管理,没有指针类型 跨平台 庞大的标准库 异常处理与C++类似 线程提供了并发处理能力 Java beans 是组件集合,与Activex 组件相似 兼容CORBA,语言独立的对象请求代理。 4.基于对象的语言 代表语言:Modula-2,PowerBuilder, Visual Basic 5.基于AI系统 代表语言:CLOS( common lisp Objec

文档评论(0)

此项为空 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档