软件工程课件:第9章 面向对象方法_第1页
软件工程课件:第9章 面向对象方法_第2页
软件工程课件:第9章 面向对象方法_第3页
软件工程课件:第9章 面向对象方法_第4页
软件工程课件:第9章 面向对象方法_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第9章章 面向对象方法学引论面向对象方法学引论9.1 面向对象方法学概述面向对象方法学概述9.1.1 面向对象方法学的要点面向对象方法学的要点 面向对象方法学的基本原则:面向对象方法学的基本原则:尽可能模拟人尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。能接近人类认识世界解决问题的方法与过程。面向对象方法具有四个要点:面向对象方法具有四个要点: A认为客观世界是由对象组成;认为客观世界是由对象组成; B把所有对象都划分成各种对象类(把所有对象都划分成各种对象类(Class);); C把若干对象类组成

2、一个层次结构的系统(类等把若干对象类组成一个层次结构的系统(类等级);级); D对象彼此间仅通过传递消息互相联系。对象彼此间仅通过传递消息互相联系。 OO = Objects + Class + Inheritance + Communication with message 9.1.2 面向对象方法的优点面向对象方法的优点 1与人们习惯的思维方法一致;与人们习惯的思维方法一致; 2稳定性好;稳定性好; 3可重用性好;可重用性好; 4较易开发大型软件产品;较易开发大型软件产品; 5. 可维护性好。可维护性好。9.1.3 喷泉模型喷泉模型9.2 面向对象的概念面向对象的概念9.2.1 对象对象

3、1、对象的形象表示、对象的形象表示 状态状态S操作操作1操作操作2操作操作3界面界面操作操作1、2、3的实现的实现图图9.2 对象的形象表示对象的形象表示1)定义)定义1:对象是具有相同状态的一组操作的集:对象是具有相同状态的一组操作的集合。合。2)定义)定义2:对象是对属性值和操作的封装。:对象是对属性值和操作的封装。3)定义)定义3:对象:对象:= 其中,其中,ID是对象的名字;是对象的名字;MS是对象中的操作集合;是对象中的操作集合;DS是对象的数据集合;是对象的数据集合;MI是对象受理的消是对象受理的消息名集合(即对外接口)。息名集合(即对外接口)。 2、对象的定义、对象的定义状态状态

4、S操作:操作:f1, f2, , fn转换:转换:g1, g2, ,gn图图9.3 用自动机模拟对象用自动机模拟对象转换:新状态转换:新状态S=gi (X,S)输出输出 fi (X, S)输入输入fi , X3、对象的特点、对象的特点 1)以数据为中心;)以数据为中心; 2)对象是主动的;)对象是主动的; 3)实现了数据封装;)实现了数据封装; 4)本质上具有并行性;)本质上具有并行性; 5)模块独立性好。)模块独立性好。 9.2.2 其他概念其他概念1、类(、类(Class) 类就是对具有相同数据和相同操作的一组类就是对具有相同数据和相同操作的一组相似对象的定义。相似对象的定义。 如:如:C

5、ircle类具有相同的数据(圆心坐标、类具有相同的数据(圆心坐标、半径、颜色)和相同的操作(显示自己、放大半径、颜色)和相同的操作(显示自己、放大缩小半径、在屏幕上移动位置)。缩小半径、在屏幕上移动位置)。 类有私有变量(类有私有变量(Private)和公有变量(和公有变量(Public)。)。 实例就是由某个特定的类所描述的一个实例就是由某个特定的类所描述的一个具体的对象。具体的对象。如:如:Circle a ; /声明声明Circle类实例类实例a Queue Q1, Q2; /声明声明Queue类实例类实例Q1和和Q2 2、实例实例(Instance) 消息就是用来请求对象执行某个处理或

6、回答消息就是用来请求对象执行某个处理或回答某些信息的要求。某些信息的要求。 消息既可以是数据流,也可以是控制流。一消息既可以是数据流,也可以是控制流。一条消息可以发送给不同的对象,对消息的解释完条消息可以发送给不同的对象,对消息的解释完全由接收信息的对象来完成,不同的对象对相同全由接收信息的对象来完成,不同的对象对相同形式的消息可以有不同的解释。形式的消息可以有不同的解释。 3、消息消息(Message) 与传统程序的与传统程序的“调用调用/返回返回”所不同的是,所不同的是,对于传来的消息,对象可以返回相应的回答对于传来的消息,对象可以返回相应的回答信息,也可以不返回。信息,也可以不返回。 一

7、个消息由三个部分组成:一个消息由三个部分组成: 1)接收信息的对象;)接收信息的对象; 2)信息选择符(即消息名);)信息选择符(即消息名); 3)零个或多个变元(参数)。)零个或多个变元(参数)。 如:如:MyCircle.Show(GREEN); 4、方法(、方法(Method) 方法,是对象所能执行的操作。方法,是对象所能执行的操作。 成员函数,如成员函数,如Circle类中定义的成员函数:类中定义的成员函数:Show(int color) 5、属性(、属性(Attribute) 属性,是类中定义的数据。属性,是类中定义的数据。6、封装(、封装(encapsulation) 封装就是信息

8、隐藏,通过封装对外界隐藏封装就是信息隐藏,通过封装对外界隐藏了对象的实现细节。了对象的实现细节。7、继承(、继承(Inheritance) 继承,是指能够直接获得已有的性质和特继承,是指能够直接获得已有的性质和特征,而不必重复定义它们。征,而不必重复定义它们。 A的操作的操作A的变量的变量类类AA的实例变量的实例变量从从A的继承特性的继承特性B的操作的操作B的变量的变量类类B继承来的继承来的A的实例变量的实例变量B的实例变量的实例变量类类AA的实例的实例a1B的实例的实例b1类类B:A的子类的子类图图9.4 实现继承机制的原理实现继承机制的原理8、多态性(、多态性(Polymorphism)

9、多态性,指子类对象可以象父类对象那样使用,多态性,指子类对象可以象父类对象那样使用,同样的消息既可以发送给父类对象,也可以发送给同样的消息既可以发送给父类对象,也可以发送给子类对象。子类对象。 即不同等级的类,可以公用一个方法的名字。即不同等级的类,可以公用一个方法的名字。9、重载(、重载(Overloading)有两种重载:有两种重载:1)函数重载)函数重载 指在同一作用域内的若干个参数特征不同的指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字。函数可以使用相同的函数名字。 如:如: Show(int a, int b) Show(int x) Show(int x, int

10、 y, int z)2)运算符重载)运算符重载 指同一运算符可以施加于不同类型的操指同一运算符可以施加于不同类型的操作数上面。当被操作数类型不同时,运算符的作数上面。当被操作数类型不同时,运算符的含义是不同的。含义是不同的。 编译时根据被操作数的类型,决定使用编译时根据被操作数的类型,决定使用算符的哪种语义。算符的哪种语义。 用面向对象方法开发软件,通常需要建立用面向对象方法开发软件,通常需要建立三种形式的模型,它们分别是:三种形式的模型,它们分别是:(1)对象模型:描述系统的数据结构;)对象模型:描述系统的数据结构;(2)动态模型:描述系统的控制结构;)动态模型:描述系统的控制结构;(3)功

11、能模型:描述系统的功能。)功能模型:描述系统的功能。 3种模型必不可少,其重要程度不同,对象模型是种模型必不可少,其重要程度不同,对象模型是最基本、最重要的。最基本、最重要的。9.3 面向对象建模面向对象建模UML(Unified Modeling Language) UML是面向对象的分析与设计是面向对象的分析与设计(OOAD)方方法发展的产物。法发展的产物。 UML基础(见补充材料)。基础(见补充材料)。 9.7 三种模型之间的关三种模型之间的关系系1)针对每个类建立的动态模型,描述了实例的)针对每个类建立的动态模型,描述了实例的生命周期或运行周期。生命周期或运行周期。2)状态转换驱使行为发生,这些行为在数据流)状态转换驱使行为发生,这些行为在数据流图中被映射成处理,在用例图中被映射成用图中被映射成处理,在用例图中被映射成用例,它们同时与类图中的服务相对应。例,它们同时与类图中的服务相对应。3)功能模型中的处理(或用例)对应于对象模)功能模型中的处理(或用例)对应于对象模型中的类所提供的服务。型中的类所提供的服务。4)数据流图中的数据存储,以及数据的源点)数据流图中的数据存储,以及数据的源点/终点,终点,通常是对象模型中的对象。通常是对象模型中的对象。5)数据流图中的数据流,往往是对象模型中对象的)数据流图中的数据流,往往是对象模型中对象的属性值,也可能是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论