面向对象方法学导论.ppt
《面向对象方法学导论.ppt》由会员分享,可在线阅读,更多相关《面向对象方法学导论.ppt(64页珍藏版)》请在三一办公上搜索。
1、第2章 面向对象方法学引论,本章概要,传统的软件工程方法学曾经给软件产业带来巨大进步,部分地缓解了软件危机,使用这种方法学开发的许多中、小规模软件项目都获得了成功。但是,人们也注意到当把这种方法学应用于大型软件产品的开发时,似乎很少取得成功。在20世纪60年代后期出现的面向对象编程语言Simula-67中首次引入了类和对象的概念,自20世纪80年代中期起,人们开始注重面向对象分析和设计的研究,逐步形成了面向对象方法学。到了20世纪90年代,面向对象方法学已经成为人们在开发软件时首选的范型。面向对象技术已成为当前最好的软件开发技术。,2.1 面向对象方法学概述,2.1.1 面向对象方法学导论 面
2、向过程程序设计:根据计算机的要求,围绕算法进行程序设计。开发软件的方法与过程不同于人类认识世界解决问题时习惯采用的方法与过程,因此使得描述问题的问题空间与实现解法的解空间在结构上明显不同。,人类习惯的解决问题的方法,让我们观察一个日常生活中常见的事例:一位厨师的头发长了需要理发,他会走进理发馆,告诉理发师要理什么发式。也就是说,为了解决头发过长的问题,厨师只需向理发师提出要求,告诉他“做什么”(即,理什么发式),并不需要告诉理发师“怎样做”,理发师自己知道第一步做什么,第二步做什么。类似地,理发师肚子饿了,只需走进餐馆点好自己要吃的饭菜,厨师自己知道该怎样做,并不需要顾客告诉他做菜的具体步骤,
3、事实上,顾客无需知道做菜的具体步骤。,面向对象程序设计方法模拟人类习惯的解题方法,用对象分解取代功能分解,也就是把程序分解成许多对象,不同对象之间通过发消息向对方提出服务要求,接受消息的对象主动完成指定功能,程序中的所有对象分工协作,共同完成整个程序的功能。,面向对象程序设计方法模拟人类习惯,2.1.2 面向对象方法概述,面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称求解域)在结构上尽可能一致。,面向对象方法具有下述4个要点:,认为客观世界是由
4、各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。把所有对象都划分成各种对象类(简称为类,Class),每个对象类都定义了一组数据和一组方法。按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。对象彼此之间仅能通过传递消息互相联系。,2.1.3 面向对象方法的主要优点,与人类习惯的思维方法比较一致 面向对象方法学的基本原则是按照人们习惯的思维方式建成立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统。面向对象的软件系统中广泛使用的对象,是对客观世界中实体的抽象。稳定性好 面向对象方法基于构造问题
5、领域的对象模型,以对象为中心构造软件系统。它的基本作法是用对象模拟问题领域中的实体,以对象间的联系刻画实体间的联系。因此,以对象为中心构造的软件系统也是比较稳定的。,可重用性好 面向对象的软件技术在利用可重用的软件成分构造新的软件系统时,有很大的灵活性。其中,有两种方法可以重复使用一个对象类:一种方法是创建该类的实例,从而直接使用它;另一种方法是从它派生出一个满足当前需要的新类。较易开发大型软件产品 可维护性好 面向对象还有如下突出优点:面向对象软件稳定性比较好;面向对象的软件比较容易修改;面向对象的软件比较容易理解;易于测试和调试。,2.1.4 喷泉模型,喷泉模型体现了面向对象方法所固有的迭
6、代和无间隙的特征。迭代是软件开发过程中普遍存在的一种内在属性。即,软件开发活动需多次重复,每次重复都从分析开始,依次进行设计、实现,逐渐细化,演化出最终系统。,图2.1喷泉模型,2.2 面向对象的概念,2.2.1 对象 在应用领域中有意义的,与所要解决 的问题有关系的任何事物都可以作为对象(Object),它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。例如,一名职工、一家公司、一个窗口、一座图书馆、一本图书、贷款、借款等等,都可以作为一个对象。总之,对象是对问题域中某个实体的抽象,设立某个对象就反映了软件系统具有保存有关它的信息并且与它进行交互的能力。,
7、面向对象方法学中的对象:是由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体。对象可以作的操作表示它的动态行为,通常称为服务或方法。,对象的形象表示(举例),一个对象很像一台录音机。当在软件中使用一个对象的时候,只能通过对象与外界的界面来操作它。对象与外界的界面也就是该对象向公众开放的操作,例如,C+语言中对象的公有的(Public)成员函数。一个对象好象是一个黑盒子,表示它内部状态的数据和实现各个操作的代码及局部数据,都被封装在这个黑盒子内部,在外面是看不见的,更不能从外面去访问或修改这些数据或代码。,对象的形象表示:,图2.2 对象的形象表示,对象的定义,人们从不
8、同角度给出对象的不同定义:1、定义1:对象是具有相同状态的一组操作的集合。2、定义2:对象是对属性值和操作的封装。3、定义3:对象=ID,MS,DS,MI 其中,ID是对象的标识或名字,MS是对象中的操作集合,DS是对象的数据结构,MI是对象受理的消息名集合(即对外接口),注意:这个定义是一个形式化的定义。,总之,对象是封装了数据结构及可以施加在这些数据结构上的操作的封装体,这个封装体有可以唯一地标识它的名字,而且向外界提供一组服务(即公有的操作)。对象中的数据表示对象的状态,一个对象的状态只能由该对象本身的操作来改变。,对象的特点,以数据为中心,操作是为数据服务的。对象是主动的,为了完成某个
9、操作,不能从外部直接加工它的私有数据,而是必须通过它的公有接口向对象发消息,请求它执行它的某个操作,处理它的私有数据。(举例:厨师与理发匠)。实现了数据封装。对象好像是一只黑盒子,它的私的数据完全被封装在盒子内部,对外是隐藏的、不可见的,对私有数据的访问或处理只能通过公有的操作进行。抽象数据类型的概念,无须知道数据的具体结构以及实现操作的算法。,本质上具有并行性。不同对象各自独立地处理自身的数据,彼此通过发消息传递信息完成通信。因此,对于不同的对象来说,本质上具有并行工作的属性。模块独立性好。对象是面向对象的软件的基本模块。,2.2.2 其他概念,类(class)“类”就是对具有相同数据和相同
10、操作的一组相似对象的定义,也就是说,类是对具有相同属性和行为的一个或多个对象的描述。例如:张三、李四、王五等,虽说每个人职业、性格、爱好、特长等等各有不同。但是,他们的基本特征是相似的,都是黄皮肤、黑头发、黑眼睛,于是人们把他们统称为“中国人”。,实例(instance)“实例”是由某个特定的类所描述的一个具体的对象。“对象”这个术语,既可以指一个具体的对象,也可以泛指一般的对象,而“实例”这个术语,必然是指一个具体的对象。C+中,要定义一个对象或实例,必须先建立一个这类对象的类。,消息(message):要求某个对象执行其中某个操作的规格的说明,一个消息由下述三部分组成:接收消息的对象;消息
11、选择符(也称为消息名);零个或多个变元。例如:MyCircle.Show(GREEN);其中:MyCircle是Circle类的对象,也是 Circle类的一个实例。Show是消息选择符(即消息名);GREEN是消息的变元。,方法(method)方法,就是对象所能执行的操作,也就是类中所定义的服务。在C+语言中把方法称为成员函数。通常,一个函数对应一个操作,实现一个功能。例如:为了MYCircle这个对象能够显示一个圆,在Circle类中必须定义成员函数Show(int color)。,属性(attribute)属性,就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。例如:Circl
12、e类中定义代表圆心坐标、半径、颜色等属性。在C+语言中把属性称为数据成员。,封装性(encapsulation)从字面上理解,所谓封装就是把某个事物包起来,使外界不知道该事物的具体内容把数据和实现操作的代码集中起来放在对象内部。使用一个对象的时候,只需知道它向外界提供的接口形式而无须知道它的数据结构细节和实现操作的算法。实现封装的条件:有一个清楚的边界。有确定的接口(这些接口就是对象可以接受的消息,用户只能通过向对象发送消息来使用它)。受保护的内部实现。,继承(inheritance)继承是指能够直接获得已有的性质和特征,而不必重复定义它们。子类自动地共享基类中定义的数据和方法的机制。(举例:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 方法 导论
链接地址:https://www.31ppt.com/p-6435957.html