第7章 面向对象方法学引论优秀PPT.ppt
《第7章 面向对象方法学引论优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第7章 面向对象方法学引论优秀PPT.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第7章章 面向对象方法面向对象方法学引论学引论现在学习的是第1页,共50页 面向对象面向对象(Object-Oriented,(Object-Oriented,缩写为缩写为OO)OO)方法学的出发点和基本原方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间问题空间(也称为问题域也称为问题域)与实现解法的解空间与实现解法的解空间(也称为求解域也称为求解域)在结构在结构上尽可能一
2、致。上尽可能一致。7.1 7.1 面向对象方法学概述面向对象方法学概述现在学习的是第2页,共50页 通常,客观世界中的实体既具有静态的属性又具通常,客观世界中的实体既具有静态的属性又具有动态的行为。然而传统语言提供的解空间对象实质有动态的行为。然而传统语言提供的解空间对象实质上却仅是描述实体属性的数据,必须在程序中从外部上却仅是描述实体属性的数据,必须在程序中从外部对它施加操作,才能模拟它的行为。对它施加操作,才能模拟它的行为。与传统方法相反,面向对象方法是一种以数据或信息为主线,与传统方法相反,面向对象方法是一种以数据或信息为主线,把数据和处理相结合的方法。面向对象方法把对象作为由数据及把数
3、据和处理相结合的方法。面向对象方法把对象作为由数据及可以施加在这些数据上的操作所构成的统一体可以施加在这些数据上的操作所构成的统一体现在学习的是第3页,共50页 概括地说,面向对象方法具有下述四个要点。概括地说,面向对象方法具有下述四个要点。认为客观世界是由各种对象组成的,任何事物认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。方式组合而成。把所有对象都划分成各种对象类把所有对象都划分成各种对象类(简称为类,简称为类,Class)Class),每个对象类都定义了一组数据和一组方法。数据用于表示对象
4、每个对象类都定义了一组数据和一组方法。数据用于表示对象的静态属性,是对象的状态信息。的静态属性,是对象的状态信息。类中定义的方法,类中定义的方法,是允许施加于该类对象上的操作,是该类所有对象共享的,并是允许施加于该类对象上的操作,是该类所有对象共享的,并不需要为每个对象都复制操作的代码。不需要为每个对象都复制操作的代码。现在学习的是第4页,共50页 按照子类按照子类(或称为派生类或称为派生类)与父类与父类(或称为基类或称为基类)的关系,把若干个对象类组成一个层次结构的系统的关系,把若干个对象类组成一个层次结构的系统(也也称为类等级称为类等级)。对象彼此之间仅能通过传递消息互相联系。对象彼此之间
5、仅能通过传递消息互相联系。面向对象的方法学可以用下列方程来概括:面向对象的方法学可以用下列方程来概括:OO=Objects+Classes+Inheritance+Communication with OO=Objects+Classes+Inheritance+Communication with messagesmessages 也就是说,面向对象就是既使用对象又使用类和继承等机也就是说,面向对象就是既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信。制,而且对象之间仅能通过传递消息实现彼此通信。现在学习的是第5页,共50页7.2面向对象方法学的主要优点面向对象方法学
6、的主要优点 1.1.与人类习惯的思维方法一致与人类习惯的思维方法一致 2.2.稳定性好稳定性好 3.3.可重用性好可重用性好 4.4.较易开发大型软件产品较易开发大型软件产品 现在学习的是第6页,共50页 5.5.可维护性好可维护性好 由于下述因素的存在,使得用面向对象方法所开由于下述因素的存在,使得用面向对象方法所开发的软件可维护性好。发的软件可维护性好。面向对象的软件稳定性比较好。面向对象的软件稳定性比较好。面向对象的软件比较容易修改。面向对象的软件比较容易修改。面向对象的软件比较容易理解。面向对象的软件比较容易理解。易于测试和调试。易于测试和调试。现在学习的是第7页,共50页7.3 面向
7、对象的概念面向对象的概念 7.3.1 7.3.1 对象对象 在应用领域中有意义的、与所要解决的问题有关在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象系的任何事物都可以作为对象(Object)(Object),它既可以是,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。例如,一名职工、是任何有明确边界和意义的东西。例如,一名职工、一家公司、一个窗口、一座图书馆、一本图书、贷款一家公司、一个窗口、一座图书馆、一本图书、贷款和借款等,都可以作为一个对象。总之,对象是对问和借款等,都可以作为一个对
8、象。总之,对象是对问题域中某个实体的抽象,设立某个对象就反映了软件题域中某个实体的抽象,设立某个对象就反映了软件系统保存有关它的信息并具与它进行交互的能力。系统保存有关它的信息并具与它进行交互的能力。现在学习的是第8页,共50页图7.1 对象的形象表示现在学习的是第9页,共50页 1.1.对象的形象表示对象的形象表示 2.2.对象的定义对象的定义 (1)(1)定义定义1 1 对象是具有相同状态的一组操作的集合。对象是具有相同状态的一组操作的集合。这个定义主要是从面向对象程序设计的角度看这个定义主要是从面向对象程序设计的角度看“对象对象”。(2)(2)定义定义2 2 对象是对问题域中某个东西的抽
9、象,这种抽象反对象是对问题域中某个东西的抽象,这种抽象反映了系统保存有关这个东西的信息或与它交互的能力。映了系统保存有关这个东西的信息或与它交互的能力。也就是说,对象是对属性值和操作的封装。也就是说,对象是对属性值和操作的封装。这个定义着重从信息模拟的角度看待这个定义着重从信息模拟的角度看待“对象对象”。现在学习的是第10页,共50页(3)(3)定义定义3 3对象对象=ID=MI其中,其中,IDID是对象的标识或名字是对象的标识或名字MSMS是对象中的操作集合是对象中的操作集合DSDS是对象的数据结构是对象的数据结构MIMI是对象受理的消息名集合是对象受理的消息名集合(即对外接口即对外接口)这
10、个定义是一个形式化的定义。这个定义是一个形式化的定义。现在学习的是第11页,共50页 从动态角度或对象的实现机制来看,对象是一台自动机。具有内从动态角度或对象的实现机制来看,对象是一台自动机。具有内部状态部状态S S,操作,操作f fi i(i=1,2,(i=1,2,n),n),且与操作,且与操作f fi i对应的状态转换函数为对应的状态转换函数为g gi i(i=1,2,(i=1,2,n),n)的一个对象,可以用图的一个对象,可以用图7.27.2所示的自动机来模拟。所示的自动机来模拟。图7.2 用自动机模拟对象现在学习的是第12页,共50页3.3.对象的特点对象的特点 以数据为中心。以数据为
11、中心。对象是主动的。对象是主动的。实现了数据封装。实现了数据封装。本质上具有并行性。本质上具有并行性。模块独立性好。模块独立性好。现在学习的是第13页,共50页 7.3.2 7.3.2 其他概念其他概念 1.类类(Class)在面向对象的软件技术中,在面向对象的软件技术中,“类类”就是对具有相就是对具有相同数据和相同操作的一组相似对象的定义,也就是说,同数据和相同操作的一组相似对象的定义,也就是说,类是对具有相同属性和行为的一个或多个对象的描述,类是对具有相同属性和行为的一个或多个对象的描述,通常在这种描述中也包括对怎样创建该类的新对象的通常在这种描述中也包括对怎样创建该类的新对象的说明。说明
12、。2.2.实例实例(Instance)(Instance)实例就是由某个特定的类所描述的一个具体的对实例就是由某个特定的类所描述的一个具体的对象。象。现在学习的是第14页,共50页 3.3.消息消息(Message)(Message)消息,就是要求某个对象执行在定义它的那个类消息,就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。通常,一个消息由中所定义的某个操作的规格说明。通常,一个消息由下述三部分组成:下述三部分组成:接收消息的对象;接收消息的对象;消息选择符消息选择符(也称为消息名也称为消息名);零个或多个变元。零个或多个变元。现在学习的是第15页,共50页 4.4.方法
13、方法(Method)(Method)方法,就是对象所能执行的操作,也就是类中所方法,就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算定义的服务。方法描述了对象执行操作的算法,响应法,响应消息的方法。消息的方法。5.5.属性属性(Attribute)(Attribute)属性,就是类中所定义的数据,它是对客观世界属性,就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。类的每个实例都实体所具有的性质的抽象。类的每个实例都有自己特有自己特有的属性值。有的属性值。现在学习的是第16页,共50页 9.9.封装封装(Encapsulation)(Encapsulatio
14、n)从字面上理解,所谓封装就是把某个事物包起来,从字面上理解,所谓封装就是把某个事物包起来,使外界不知道该事物的具体内容。使外界不知道该事物的具体内容。综上所述,具有封装性的条件如下。综上所述,具有封装性的条件如下。有一个清晰的边界。所有私有数据和实现操作有一个清晰的边界。所有私有数据和实现操作的代码都被封装在这个边界内,从外面看不见更不能的代码都被封装在这个边界内,从外面看不见更不能直接访问。直接访问。有确定的接口有确定的接口(即协议即协议)。这些接口就是对象可。这些接口就是对象可以接受的消息,只能通过向对象发送消息来使用它。以接受的消息,只能通过向对象发送消息来使用它。受保护的内部实现。实
15、现对象功能的细节受保护的内部实现。实现对象功能的细节(私私有数据和代码有数据和代码)不能在定义该对象的类的范围外进行访不能在定义该对象的类的范围外进行访问。问。封装性也就是信息隐藏,通过封装把对象的实现细节封装性也就是信息隐藏,通过封装把对象的实现细节对外界隐藏起来了。对外界隐藏起来了。现在学习的是第17页,共50页 7.7.继承继承(Inheritance)(Inheritance)广义地说,继承是指能够直接获得已有的性质和广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象的软件技术特征,而不必重复定义它们。在面向对象的软件技术中,继承是子类自动地共享基类中定义的
16、数据和方法中,继承是子类自动地共享基类中定义的数据和方法的机制。的机制。当一个类只允许有一个父类时,也就是说,当类当一个类只允许有一个父类时,也就是说,当类等级为树形结构时,类的继承是单继承;当等级为树形结构时,类的继承是单继承;当允许一个允许一个类有多个父类时,类的继承是多重继承。类有多个父类时,类的继承是多重继承。现在学习的是第18页,共50页图7.3 实现继承机制的原理现在学习的是第19页,共50页 8.8.多态性多态性(Polymorphism)(Polymorphism)多态性一词来源于希腊语,意思是多态性一词来源于希腊语,意思是“有许多形态有许多形态”。在面向对象的软件技术中,多态
17、性是指子类对象在面向对象的软件技术中,多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。也就是说,在类等父类对象也可以发送给子类对象。也就是说,在类等级的不同层次中可以共享级的不同层次中可以共享(公用公用)一个行为一个行为(方法方法)的名的名字,然而不同层次中的每个类却各自按自己的需要来字,然而不同层次中的每个类却各自按自己的需要来实现这个行为。当对象接收到发送给它的消息时,根实现这个行为。当对象接收到发送给它的消息时,根据该对象所属于的类动态选用在该类中定义的实现算据该对象所属于的类动态选用在该类中定义
18、的实现算法。法。现在学习的是第20页,共50页 9.9.重载重载(Overloading)(Overloading)有两种重载:函数重载是指在同一作用域内的若有两种重载:函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;干个参数特征不同的函数可以使用相同的函数名字;运算符重载是指同一个运算符可以施加于不同类型的运算符重载是指同一个运算符可以施加于不同类型的操作数上面。当然,当参数特征不同或被操作数的类操作数上面。当然,当参数特征不同或被操作数的类型不同时,实现函数的算法或运算符的语义是不相同型不同时,实现函数的算法或运算符的语义是不相同的。的。现在学习的是第21页,共
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第7章 面向对象方法学引论优秀PPT 面向 对象 方法 引论 优秀 PPT
限制150内