欢迎来到天天文库
浏览记录
ID:39425544
大小:661.81 KB
页数:37页
时间:2019-07-03
《面向对象程序设计方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章面向对象程序设计方法面向对象方法与结构化方法结构化程序设计方法的主要技术是自顶向下,逐步求精,采用单入口/单出口的控制结构。面向对象程序设计建立在结构化程序设计基础上,最重要的改变是程序围绕被操作的数据来设计,而不是围绕操作本身。结构化程序设计方法在解决中等复杂问题时表现了卓越的性能,但随着程序规模与复杂度的增加及软件行业的产业化,程序中数据结构与这些数据的操作同样重要,面向对象的程序设计方法逐渐展示其生命力,成为人们普遍看好的软件问题解决方案。面向对象程序设计与结构化程序设计是解决问题两种不同的思维方式,在程序设计技术迅速发展的今天,两种方法和语言都必须掌握。面向对象
2、程序设计方法学主要内容为什么需要面向对象面向对象程序设计方法的基本概念面向对象程序设计方法的起源面向对象计算的基本原理面向对象程序设计的基本原则面向对象程序设计的一般方法应用框架设计模式3.1为什么需要面向对象实践中人们认识到重用已有开发结果的重要性,提出了软件重用的概念。重用中有一种常见情况:软件开发中遇到的新问题常常与解决过的问题(重用库提供的功能)类似,但又不完全相同。已有模块的功能与需要有差异,就不能以其“现有”形式直接使用。模块功能的修改只能通过修改源代码的方式进行,程序员就只能拷贝这个模块的源代码,深入研究后设法修改之。3.1为什么需要面向对象面向对象的方法和程序
3、技术,为基于模块(一个类也可以看作一个模块)的重用问题提供了一条解决途径。面向对象技术的最重要能力,是使程序员比较容易以外部附加的方式,在原有抽象的基础上定义新的数据抽象。容易定义一些操作的框架,使新的数据抽象可以使用这些框架,并把针对该类抽象的实例的具体操作插入框架中(重用和调整)。3.2基本概念封装(encapsulation)信息/实现的隐藏(information/implementationhiding)对象标识(objectidentity)消息(message)类(class)继承(inheritance)多态性(polymorphism)接口(interfac
4、e)3.2基本概念封装,将属性和操作包装成一个单元,使得对状态的访问和修改只能通过封装提供的接口进行。信息/实现的隐藏,将某些属性或方法限制在封装内部使用,限制外部的可见性。对象标识,每个对象可以作为软件实体被标识和处理,每个对象都有一个对象标识符(objectidentifier,OID)。消息,对象间发送请求的载体。接口,一组没有公共代码的对象共享实现。3.2基本概念类,类是对象的类型(模板),对象是类的实例。继承,子类隐式使用超类(或父类)的属性和操作。多态性,子类覆盖(overriding)父类的方法。它和重载(overloading)的区别在于重载是在同一对象层次中
5、,利用参数的不同来进行动态绑定(dynamicbinding)。3.3面向对象程序设计方法的起源1.符号抽象Backus[1957]的Fortran实现使用了人们习惯的符号记法,而且确保了编译后的运行效率。2.过程抽象C语言的发展使函数概念得到了普及和大规模应用。一些相对完整的功能代码被封装在一个函数里面实现。3.信息隐藏和抽象数据类型Wirth[1980]的Modula-2语言实现了模块,不降低运行效率的情况下实现了信息隐藏和抽象数据类型。3.3面向对象程序设计方法的起源4.类型抽象挪威计算中心的KristenNygaard和Ole-JohanDahl开发了Simula67
6、语言;70年代中期,XeroxPaloAlto研究中心开发了Smalltalk语言;这些语言用类、对象、重载、动态绑定技术实现了抽象数据类型,但是其运行效率不能让人满意,其抽象类型概念也不能让人接受,直到C和C++……3.4面向对象计算的基本原理面向对象的抽象原理数据抽象原理数据抽象提供了面向对象方法的始点,其核心就是实现了模块化与信息隐藏,同时它也是面向对象方法学的基础。行为共享原理行为共享是指许多实体具有相同的接口,将不同实体的相同操作定义为抽象的操作,从而给用户带来方便。面向对象的抽象原理进化原理进化包括两种含义:一是指系统随需求变化而修改和增加的情况;二是指对复杂问题
7、的增量式的求解过程。进化建议面向对象对修改封闭,对增加开放。正确性原理正确性的问题主要是由行为共享所导致的,当一个实体请求另外一个实体的某种行为时候,系统必须确保能够在共享的行为组中找到正确的行为实现并运行它。面向对象计算的基本原理面向对象计算模型是指对上述面向对象抽象原理的具体实现技术,大部分面向对象语言使用如下三类技术:1.封装封装实现了数据抽象技术2.分类分类是实现行为共享的基础A集合B抽象数据类型C类面向对象计算的基本原理3.共享共享技术用于实现行为共享和进化原理。在面向对象语言系统中,共享又统
此文档下载收益归作者所有