《软件工程面向对象基础.ppt》由会员分享,可在线阅读,更多相关《软件工程面向对象基础.ppt(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第9 9章章 面向对象基础面向对象基础面向面向对对象基象基础础9.1 9.1 面向对象程序设计语言的发展面向对象程序设计语言的发展9.2 9.2 面向对象程序设计模式面向对象程序设计模式9.3 9.3 面向对象的概念面向对象的概念9.4 9.4 面向对象的开发方法面向对象的开发方法9.5 9.5 小结小结习题习题第第9 9章章 面向对象基础面向对象基础9.1 9.1 面向面向对对象程序象程序设计语设计语言的言的发发展展9.1.1 Simula语言Simula 67是一种真正的多功能程序设计语言,仿真是其中的一个应用。第第9 9章章 面向对象基础面向对象基础9.1.2 Smalltalk语言
2、Smalltalk是一种纯面向对象程序设计语言,它强调对象概念的归一性,引入了类、子类、方法、消息和实例等概念术语,应用了单继承性和动态联编,成为面向对象程序设计语言发展中一个引人注目的里程碑。第第9 9章章 面向对象基础面向对象基础 9.1.3 Eiffel语言Eiffel它是继Smalltalk 80之后又一个纯面向对象的程序设计语言。它的主要特点是全面的静态类型化、全面支持面向对象的概念、支持动态联编、支持多重继承和具有再命名机制可解决多重继承中的同名冲突问题。第第9 9章章 面向对象基础面向对象基础9.1.4 C+语言 C+是一种混合型的面向对象的强类型语言,C+是C语言的超集,融合了
3、Simula的面向对象的机制,借鉴了ALGOL 68中变量声明位置不受限制、操作符重载,形成一种比Smalltalk更接近于机器但又比C语言更接近问题的面向对象程序设计语言。第第9 9章章 面向对象基础面向对象基础9.1.5 面向对象程序设计语言目前已有几十种面向对象语言出现,这些语言分为两大类:第一类是纯面向对象的程序设计语言,它们是Smalltalk-80,Eiffel,SELF,Java等;第二类是混合式面向对象程序设计语言,它们是C+,Simula,CLOS,CommonLoops,Objective-C,objective Pascal等。第第9 9章章 面向对象基础面向对象基础9.
4、2 9.2 面向面向对对象程序象程序设计设计模式模式9.2.1 软件能力面临的问题(略)1.1.软件能力软件能力2.2.制约软件发展的主要因素制约软件发展的主要因素3.3.传统软件工程的局限性传统软件工程的局限性4.4.软件形式化开发至今尚未真正实用软件形式化开发至今尚未真正实用5.5.必然的选择必然的选择采用新的程序设计模式采用新的程序设计模式第第9 9章章 面向对象基础面向对象基础9.2.2 程序设计基本模式 程序设计模式是人们在程序设计时所采用的基本方式模型,它是以一类程序设计语言为基础,体现了一类语言的主要特点,这些特点能用以支持应用领域所希望的设计风格。从第一个程序设计语言产生以来,
5、有如下的基本程序设计模式。1.过程程序设计例如FORTURN语言。2.结构化程序设计这种模式的程序设计语言有Modula,Ada,C和PASCAL等。3.函数程序设计函数程序设计语言的代表是LISP等语言。4.逻辑程序设计逻辑程序设计模式的语言代表是PROLOG等语言 5.面向对象程序设计9.2.3 程序设计模式的转换(略)第第9 9章章 面向对象基础面向对象基础9.2.4 面向对象程序设计模式的机制 1.基本特征 面向对象的程序设计将计算看作是一个系统的开发过程,系统由对象组成,经历一连串的状态变化以完成计算任务。面向对象程序设计对体系结构和支撑软件系统没有突变要求,因而不存在难以应用现有资
6、源的问题。2.基础构件面向对象程序的基础构件是对象和类。从程序设计角度来看,对象是一种不依赖于外界的模块,对应着存储器中的一块被划分的区域。它包含数据,在逻辑上也包含作用于这些数据的过程,这些过程称为方法。第第9 9章章 面向对象基础面向对象基础杭杭 州州北北 京京Post-officeMessageSend by method对象对象ObjectObject=数据数据AttributeAttributes:location;employee;+操作操作MethodMethods:send;sell;注意注意:Object内部的内部的attributes不允许外部用户直接改动,只有当它不允许外
7、部用户直接改动,只有当它提供了相应的服务提供了相应的服务method时,时,用户才能通过发送用户才能通过发送message来来提请它执行。提请它执行。我想把邮局搬到我想把邮局搬到我家门口,多加几个我家门口,多加几个邮递员,邮递员,24小时都开门小时都开门对不起,对不起,本邮局不提供本邮局不提供此类服务此类服务唉,那就先送束花吧唉,那就先送束花吧 Post_office.Send(request,payment)软件工程的新途径面向对象方法学面向对象方法学(OOM)例:例:第第9 9章章 面向对象基础面向对象基础3.基本机制面向对象程序设计的基本机制是继承性、消息和方法,还有在特定方面提供更为专
8、门的、灵活的机制,如重置、多态等。第第9 9章章 面向对象基础面向对象基础9.3 9.3 面向面向对对象的概念象的概念9.3.1 9.3.1 面向对象的基本思想面向对象的基本思想 尽可能模拟人类习惯的思维方式,尽可能模拟人类习惯的思维方式,即问题域与求解域在结构上尽可能一即问题域与求解域在结构上尽可能一致。与传统方法相反,致。与传统方法相反,OOM以数据或以数据或信息为主线,把信息为主线,把数据和处理结合构成数据和处理结合构成统一体统一体 对象。这时程序不再是一对象。这时程序不再是一系列工作在数据上的函数集合,而是系列工作在数据上的函数集合,而是相互协作又彼此独立的相互协作又彼此独立的对象的集
9、合对象的集合。第第9 9章章 面向对象基础面向对象基础程序程序=(对象、对象、对象、对象对象、对象、对象、对象)第第9 9章章 面向对象基础面向对象基础计算机世界计算机世界现实世界现实世界结结构构化化开开发发方方法法结构化结构化结构化结构化分析分析分析分析结构化结构化结构化结构化设计设计设计设计结构化结构化结构化结构化编程编程编程编程OOAOOAOODOODOOPOOP面面向向对对象象开开发发方方法法OOM第第9 9章章 面向对象基础面向对象基础什么是面向对象什么是面向对象什么是面向对象什么是面向对象CoadCoad和和和和YourdonYourdon给出了一个定义:给出了一个定义:给出了一个
10、定义:给出了一个定义:“面向对象面向对象面向对象面向对象=对象对象对象对象+类类类类+继承继承继承继承+通信通信通信通信”。如果一个软件系统是使用这样如果一个软件系统是使用这样如果一个软件系统是使用这样如果一个软件系统是使用这样 4 4 个概念设计和个概念设计和个概念设计和个概念设计和实现的,则我们认为这个软件系统是面向对实现的,则我们认为这个软件系统是面向对实现的,则我们认为这个软件系统是面向对实现的,则我们认为这个软件系统是面向对象的。象的。象的。象的。一个面向对象的程序的每一成份应是一个面向对象的程序的每一成份应是一个面向对象的程序的每一成份应是一个面向对象的程序的每一成份应是对象对象对
11、象对象,计,计,计,计算是通过算是通过算是通过算是通过新的对象的建立新的对象的建立新的对象的建立新的对象的建立和和和和对象之间的通信对象之间的通信对象之间的通信对象之间的通信来执行的来执行的来执行的来执行的。9.3.2 9.3.2 面向对象的基本概念面向对象的基本概念 第第9 9章章 面向对象基础面向对象基础对象(对象(对象(对象(objectobject)客观世界里的任何实体都可以被看作是对象。对象可以是具体的物,也客观世界里的任何实体都可以被看作是对象。对象可以是具体的物,也客观世界里的任何实体都可以被看作是对象。对象可以是具体的物,也客观世界里的任何实体都可以被看作是对象。对象可以是具体
12、的物,也可以指某些概念。可以指某些概念。可以指某些概念。可以指某些概念。(有形实体、作用、事件、性能说明有形实体、作用、事件、性能说明有形实体、作用、事件、性能说明有形实体、作用、事件、性能说明)对象对象对象对象是面向对象开发模式的是面向对象开发模式的是面向对象开发模式的是面向对象开发模式的基本成份基本成份基本成份基本成份。每个对象可用每个对象可用每个对象可用每个对象可用它本身的一组属性它本身的一组属性它本身的一组属性它本身的一组属性和和和和它可以执行的一组操作它可以执行的一组操作它可以执行的一组操作它可以执行的一组操作来定义。来定义。来定义。来定义。从编程的角度来看,对象从编程的角度来看,对
13、象从编程的角度来看,对象从编程的角度来看,对象=(算法(算法(算法(算法+数据结构)数据结构)数据结构)数据结构)或或或或 对象对象对象对象=(操作(操作(操作(操作+属性)属性)属性)属性)即对象实现了数据和操作的结合,使数据和操作封装在对象的统一体内。即对象实现了数据和操作的结合,使数据和操作封装在对象的统一体内。即对象实现了数据和操作的结合,使数据和操作封装在对象的统一体内。即对象实现了数据和操作的结合,使数据和操作封装在对象的统一体内。属性:属性:属性:属性:属性用来表示对象的状态属性用来表示对象的状态属性用来表示对象的状态属性用来表示对象的状态操作操作操作操作又称为方法或服务,它又称
14、为方法或服务,它又称为方法或服务,它又称为方法或服务,它描述了对象执行的功能描述了对象执行的功能描述了对象执行的功能描述了对象执行的功能,描述对象行为的过,描述对象行为的过,描述对象行为的过,描述对象行为的过程,若通过消息传递,还可以为其它对象使用。程,若通过消息传递,还可以为其它对象使用。程,若通过消息传递,还可以为其它对象使用。程,若通过消息传递,还可以为其它对象使用。第第9 9章章 面向对象基础面向对象基础类类类类(class)(class)类是一组具有相同数据结构和相同操作的对象的集合。类的定义包括一组数据属性和在数据上的一组合法操作。类定义可以视为一个具有类似特性与共同行为的对象的模
15、板,可用来产生对象。第第9 9章章 面向对象基础面向对象基础在一个类中,每个在一个类中,每个对象对象都是都是类的实例类的实例 (Instance)(Instance),它们都可使用类中提供它们都可使用类中提供的函数。的函数。对象的状态则包含在它的实例变量,即对象的状态则包含在它的实例变量,即实例的属性中。实例的属性中。例:人类是一个类,张三、李四都是人的实例(对象),例:人类是一个类,张三、李四都是人的实例(对象),一个类描述这些事务所应具有的属性,如人有身高、体重、一个类描述这些事务所应具有的属性,如人有身高、体重、文化程度、性别、年龄等。文化程度、性别、年龄等。一个对象是类的一个实例,它具
16、有确定的属性,如张一个对象是类的一个实例,它具有确定的属性,如张三的身高三的身高180、体重、体重70、大本、男、大本、男、21 人类只有一个,人类的实例可以有多个。人类只有一个,人类的实例可以有多个。第第9 9章章 面向对象基础面向对象基础【例例1】基于基于Visual FoxPro的的FORM类生成一个对象,然后访问该对类生成一个对象,然后访问该对象的一些属性和方法象的一些属性和方法。Oform=CREATEOBJECT(Form)&生成一个空白表单生成一个空白表单Oform.show&显示表单显示表单Oform.caption=“演示演示”&修改表单的标题修改表单的标题?“这是一个生成对
17、象的演示程序这是一个生成对象的演示程序”&在表单上输出字符串在表单上输出字符串Oform.release&释释放表放表单单对象类方法(操作)属性第第9 9章章 面向对象基础面向对象基础李杰李杰男广东软件1980.49#楼129室看书实验上课运动杨芳服务王辉男湖南计算机控制1979.19#楼320室杨芳女北京系统结构1979.125#楼418室姓名性别籍贯专业出生年月住址学生属性王辉属性属性属性看书实验上课运动服务看书实验上课运动服务看书实验上课运动服务类对象第第9 9章章 面向对象基础面向对象基础消息(消息(消息(消息(MessageMessage)消息是一个对象与另一个对象的通信单元,是要求
18、某个对象消息是一个对象与另一个对象的通信单元,是要求某个对象消息是一个对象与另一个对象的通信单元,是要求某个对象消息是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明。执行类中定义的某个操作的规格说明。执行类中定义的某个操作的规格说明。执行类中定义的某个操作的规格说明。发送给一个对象的发送给一个对象的发送给一个对象的发送给一个对象的消息定义了一个消息定义了一个消息定义了一个消息定义了一个方法名方法名方法名方法名和一个和一个和一个和一个参数表参数表参数表参数表(可能是空的),并(可能是空的),并(可能是空的),并(可能是空的),并指定某一个指定某一个指定某一个指定某
19、一个对象对象对象对象。消息通信是面向对象的方法中对象之间相互联系的方法。这和消息通信是面向对象的方法中对象之间相互联系的方法。这和Fortran、C等传统编程语言中带参数子程序调用是相似的。等传统编程语言中带参数子程序调用是相似的。对象间只能通过发送对象间只能通过发送消息消息进行联系,外界不能处理进行联系,外界不能处理对象对象的内部数据,的内部数据,只能通过只能通过消息消息请求它进行处理(如果它提供相应消息的话)。请求它进行处理(如果它提供相应消息的话)。Message:=object_ID.method_ID(parameter(s)一个对象接收的消息则调用消息中指定的一个对象接收的消息则调
20、用消息中指定的方法方法,并将并将形式参数与参数表中相应的值结合起来形式参数与参数表中相应的值结合起来。例如:例如:Post_office.Send(request,payment)第第9 9章章 面向对象基础面向对象基础9.3.3 9.3.3 面向对象的特征面向对象的特征 1.1.对象唯一性对象唯一性对象唯一性对象唯一性每每个个对对象象都都有有自自身身唯唯一一的的标标识识,通通过过这这种种标标识识,可可找找到到相相应应的的对对象象。在在对对象象的的整整个个生生命命期期中中,它它的的标标识识都都不不改改变变,不不同同的的对对象象不不能能有有相相同同的的标标识识。在在对对象象建建立立时时,由由系系
21、统统授授予予新新对对象象唯唯一一的的对对象象标标识识符符,它它在在历史版本管理中有巨大作用。历史版本管理中有巨大作用。第第9 9章章 面向对象基础面向对象基础2.2.分类性分类性分类性分类性分分类类性性是是指指将将具具有有一一致致的的数数据据结结构构(属属性性)和和行行为为(操操作作)的的对对象象抽抽象象成成类类。一一个个类类就就是是这这样样一一种种抽抽象象,它它反反映映了了与与应应用用有有关关的的重重要要性性质质,而而忽忽略略其其他他一一些些无无关关内内容容。任任何何类类的的划划分分都都是是主主观观的的,但但必必须须与与具具体体的的应应用用有有关关。每每个个类类是是个个体体对对象象的的可可能
22、能无无限限集集合合,而而每每个对象是相关类的实例。个对象是相关类的实例。第第9 9章章 面向对象基础面向对象基础3.3.继承继承继承继承 (Inheritance)(Inheritance)继继继继承承承承是是是是使使使使用用用用已已已已存存存存在在在在的的的的定定定定义义义义做做做做为为为为基基基基础础础础建建建建立立立立新新新新定定定定义义义义的的的的技技技技术。是子类自动共享术。是子类自动共享术。是子类自动共享术。是子类自动共享父类数据结构和方法的机制。父类数据结构和方法的机制。父类数据结构和方法的机制。父类数据结构和方法的机制。新新新新类类类类的的的的定定定定义义义义可可可可以以以以是
23、是是是既既既既存存存存类类类类所所所所声声声声明明明明的的的的数数数数据据据据和和和和新新新新类类类类所所所所增增增增加加加加的的的的声声声声明明明明的的的的组组组组合合合合。新新新新类类类类可可可可以以以以不不不不加加加加修修修修改改改改复复复复用用用用既既既既存存存存类类类类的的的的定定定定义义义义。既存类既存类既存类既存类是父类(是父类(是父类(是父类(基类)基类)基类)基类),新类是子类(新类是子类(新类是子类(新类是子类(派生类)派生类)派生类)派生类)。可以是单重可以是单重可以是单重可以是单重继承和多重继承。继承和多重继承。继承和多重继承。继承和多重继承。一个子类的成员一般包括:一
24、个子类的成员一般包括:一个子类的成员一般包括:一个子类的成员一般包括:(1 1)从其父类继承的属性和方法。)从其父类继承的属性和方法。)从其父类继承的属性和方法。)从其父类继承的属性和方法。(2 2)由子类自己定义的属性和方法。)由子类自己定义的属性和方法。)由子类自己定义的属性和方法。)由子类自己定义的属性和方法。第第9 9章章 面向对象基础面向对象基础多边形四边形矩形三角形学生女学生男学生人教师辅导员学生汽车运货车救火车大轿车起重车母亲父亲孩子第第9 9章章 面向对象基础面向对象基础4.4.多态性多态性多态性多态性 相同的操作或函数、过程可作用于多种不同类型对象上并相同的操作或函数、过程可
25、作用于多种不同类型对象上并获得不同结果。获得不同结果。即不同的对象,收到同一消息可以即不同的对象,收到同一消息可以产生不产生不同的结果同的结果。在打印领域,打印程序可以打印字符、数字、图形、图像,在打印领域,打印程序可以打印字符、数字、图形、图像,打印程序由于知道如何同时打印图文,因而是多态的打印程序由于知道如何同时打印图文,因而是多态的。几何图形的几何图形的draw方法,可以根据图形不同而画出不同的图形方法,可以根据图形不同而画出不同的图形如如MOVE操作,可以是窗口对象的移动操作,也可以是操作,可以是窗口对象的移动操作,也可以是国际象棋棋子的移动操作。国际象棋棋子的移动操作。第第9 9章章
26、 面向对象基础面向对象基础9.3.4 9.3.4 面向对象的要素面向对象的要素 面面向向对对象象有有一一些些基基本本要要素素。虽虽然然这这些些要要素素并并不不是是仅仅为为面面向向对对象象系系统所独有,但这些要素很适合于用来支持面向对象的系统。统所独有,但这些要素很适合于用来支持面向对象的系统。1.抽象抽象抽抽象象是是指指强强调调实实体体的的本本质质、内内在在的的属属性性,而而忽忽略略一一些些无无关关紧紧要要的的属属性性。在在系系统统开开发发中中,抽抽象象指指的的是是在在决决定定如如何何实实现现对对象象之之前前,对对象象的的意意义义和和行行为为。使使用用抽抽象象可可以以尽尽可可能能避避免免过过早
27、早考考虑虑一一些些细细节节,大大多多数数语语言言都都提提供供数数据据抽抽象象机机制制,而而运运用用继继承承性性和和多多态态性性强强化化了了这这种种能能力力,分分析析阶阶段段使使用用抽抽象象仅仅仅仅涉涉及及应应用用域域的的概概念念,在在理理解解问问题题域域之之前前不不考考虑虑设设计计与与实实现现。合合理理应应用用抽抽象象可可以以在在分分析析、设设计计、程程序序结结构构、数数据据库库结结构及文档化等过程中使用统一的模型。构及文档化等过程中使用统一的模型。第第9 9章章 面向对象基础面向对象基础面面向向对对象象比比其其他他方方法法技技术术有有更更高高的的抽抽象象性性。对对象象具具有有极极强强的的抽抽
28、象象表表达达能能力力,对对象象可可表表示示一一切切事事物物,可可表表达达结结构构化化的的数数据据,也也可可表表达达非非结结构构化化的的数数据据,如如工工程程实实体体、图图形形、声声音音及及规规则则等等。而而类类实现了对象的数据和行为的抽象,是对象的共性的抽象实现了对象的数据和行为的抽象,是对象的共性的抽象。2.封装性封装性(信息隐蔽信息隐蔽)封封装装性性是是保保证证软软件件部部件件具具有有优优良良的的模模块块性性的的基基础础。封封装装性性是是指指所所有有软软件件部部件件内内部部都都有有明明确确的的范范围围以以及及清清楚楚的的外外部部边边界界。每每个个软软件件部部件件都都有有友友好好的的界界面面
29、接接口口,软软件件部部件件的的内内部部实实现现与外部可访问性分离。与外部可访问性分离。第第9 9章章 面向对象基础面向对象基础面面向向对对象象的的类类是是封封装装良良好好的的模模块块,类类定定义义将将其其说说明明(用用户户可可见见的的外外部部接接口口)与与实实现现(用用户户不不可可见见的的内内部部实实现现)显显式式地地分分开开,其其内内部实现按其具体定义的作用域提供保护。部实现按其具体定义的作用域提供保护。对对象象是是封封装装的的最最基基本本单单位位,在在用用面面向向对对象象的的方方法法解解决决实实际际问问题题时时,要要创创建建类类的的实实例例,即即建建立立对对象象,除除了了应应具具有有的的共
30、共性性外外,还还应应定定义义仅仅由由该该对对象象所所私私有有的的特特性性。因因此此,对对象象封封装装比比类类的的封封装更具体、更细致装更具体、更细致,是面向对象封装的最基本单位。是面向对象封装的最基本单位。封封装装防防止止了了程程序序相相互互依依赖赖性性而而带带来来的的变变动动影影响响。面面向向对对象象的的封装比传统语言的封装更为清晰、有力。封装比传统语言的封装更为清晰、有力。第第9 9章章 面向对象基础面向对象基础3.共享性面向对象技术在不同级别上促进了共享面向对象技术在不同级别上促进了共享,有以下几种:有以下几种:(1)同同一一个个类类中中对对象象的的共共享享。同同一一个个类类中中的的对对
31、象象有有着着相相同同数数据据结结构构,这这是是由由数数据据成成员员的的类类型型、定定义义顺顺序序及及继继承承关关系系等等决决定定的的;也也有有着着相相同同的的行行为为特特征征,这这是是由由方方法法接接口口和和实实现现决决定定的的。从从这这个个意意义义上上讲讲,这这些些对对象象之之间间是是结结构构、行行为为特特征征的的共共享享关关系系。进进一一步步,在在某某些些实实际际应应用用中中还还会会出出现现要要求求这这些些对对象象之之间间有有状状态态(即即数数据据成成员员值值)的的共共享享关关系系。例例如如,所所有有同同心心圆圆的的类类,各各个个具具体体圆圆的的圆心坐标值是相同的,即共处于同一状态。圆心坐
32、标值是相同的,即共处于同一状态。第第9 9章章 面向对象基础面向对象基础(2)在在同同一一个个应应用用中中的的共共享享。在在同同一一应应用用的的类类层层次次结结构构中中,存存在在继继承承关关系系的的各各相相似似子子类类中中,存存在在着着数数据据结结构构和和行行为为的的继继承承,使使各各相相似似子子类类共共享享共共同同的的结结构构和和行行为为。使使用用继继承承来来实实现现代代码的共享,这也是面向对象的主要优点之一。码的共享,这也是面向对象的主要优点之一。第第9 9章章 面向对象基础面向对象基础(3)在在不不同同应应用用中中的的共共享享。面面向向对对象象不不仅仅允允许许在在同同一一应应用用共共享享
33、信信息息,而而且且为为未未来来目目标标的的可可重重用用设设计计准准备备了了条条件件。通通过过类类库库这这种种机机制制和结构来实现不同应用中的信息共享。和结构来实现不同应用中的信息共享。4.强调对象结构而不是程序结构(略)面面向向对对象象技技术术强强调调明明确确对对象象是是什什么么,而而不不强强调调对对象象是是如如何何被被使使用用的的。对对象象的的使使用用依依赖赖于于应应用用的的细细节节,并并且且在在开开发发中中不不断断变变化化。当当需需求求变变化化时时,对对象象的的性性质质比比对对象象的的使使用用方方式式更更为为稳稳定定。因因此此,从从长长远远来来看看,在在对对象象结结构构上上建建立立的的软软
34、件件系系统统将将更更为为稳稳定定。面面向向对对象象技技术术特特别别强强调调数数据据结结构构,而而对对程程序序结结构构的的强强调调比比传传统统的的功功能能分分解解方方法法要要少少得得多多。从从这这种种意意义义上上讲讲,面面向向对对象象的的开开发发与与数数据据库库设设计计中中的的信信息息建建模模技技术术相相似似,只只不不过过面面向对象开发增加了类依赖行为的概念。向对象开发增加了类依赖行为的概念。第第9 9章章 面向对象基础面向对象基础9.4.1 9.4.1 面向对象方法的形成面向对象方法的形成(略略)9.4.2 面向对象的开发方法面向对象的开发方法Booch方法Coad-Yourdon方法Rumb
35、augh 方法(简称OMT)(Object Modeling Technology)Jacobson 方法(简称OOSE)9.4 9.4 面向对象的开发方法面向对象的开发方法由由Rumbaugh、Booch、Jacobson 提出的统提出的统一建模语言一建模语言 (Unify Modeing Language简称简称UML)第第9 9章章 面向对象基础面向对象基础9.5 9.5 小结小结本本章章是是面面向向对对象象开开发发方方法法的的基基础础。介介绍绍了了面面向向对对象象程程序序设设计计语语言言的的发发展展,程程序序设设计计模模式式的的转转换换,以以及及向向面面向向对对象象程程序序设设计计模模
36、式式转转换换的的必必然然性性,同同时时介介绍绍了了面向对象程序设计的基本特征、基本构件和基本机制。面向对象程序设计的基本特征、基本构件和基本机制。本本章章介介绍绍了了面面向向对对象象的的基基本本概概念念,如如对对象象、类类、属属性性、操操作作、关关系系、消消息息和和方方法法等等,同同时时还还介介绍绍了了面面向对象的特征和要素。向对象的特征和要素。第第9 9章章 面向对象基础面向对象基础对对象象的的最最基基本本的的特特征征是是封封装装和和继继承承。作作为为一一种种抽抽象象数数据据类类型型,对对象象把把实实体体的的相相关关属属性性和和操操作作封封装装在在一一起起,允允许许人人们们用用自自然然的的方
37、方式式去去模模拟拟外外部部实实体体的的结结构构和和行行为为。继继承承是是类类实实现现可可重重用用性性和和可可扩扩充充性性的的关关键键特特征征。在在继继承承关关系系下下,类类之之间间组组成成网网状状或或树树形形的的层层次次结结构构。尽尽管管人人们们对对面面向向对对象象作作了了广广泛泛的的研研究究,但但在在对对象象语语义义理理论论方方面面尚尚缺缺乏乏一一个个为为人人们所普遍接受的严格的数学模型。们所普遍接受的严格的数学模型。把面向对象的思想用于软件的分析和设计,从而产生把面向对象的思想用于软件的分析和设计,从而产生了崭新的面向对象的开发方法。本章概括地介绍了各种典了崭新的面向对象的开发方法。本章概
38、括地介绍了各种典型的面向对象开发方法,如型的面向对象开发方法,如Coad方法、方法、OMT方法及方法及Booch方法等。其中方法等。其中Coad方法在第方法在第10章中详细介绍,章中详细介绍,OMT方法方法在第在第12章中详细介绍。章中详细介绍。第第9 9章章 面向对象基础面向对象基础习题习题 1.1.说明对象、类、类结构及消息的基本概念。说明对象、类、类结构及消息的基本概念。2.2.说明面向对象的特征和要素。说明面向对象的特征和要素。3.3.说明面向对象程序设计的基本构件。说明面向对象程序设计的基本构件。4.4.说明面向对象开发方法的三个流派。说明面向对象开发方法的三个流派。5.5.说明面向对象程序设计模式成为主流模式的原因。说明面向对象程序设计模式成为主流模式的原因。