版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三部分面向对象的软件开发方法第7章面向对象方法概论7.1面向对象的基本思想
面向对象方法是一种运用对象、类、继承、聚合、关联、消息和封装等概念和原则来构造软件系统的开发方法。具体地讲,面向对象方法的基本思想为:(1)面向对象方法要求从现实世界中客观存在的事物出发来建立软件系统,强调直接以问题域(现实世界)中的事物为中心来思考问题和认识问题,并根据这些事物的本质特征和系统责任,把它们抽象地表示为系统中的对象。这样构造出来的系统可以直接地映射到问题域,并能在其中保持问题域中的事物及其相互关系的本来面貌。(2)用对象的属性(attribute)表示事物的数据特征;用对象的操作(operation)表示事物的行为特征。把对象的属性与操作结合为一体,使之成为一个独立的、不可分的实体,实体对外屏蔽其内部细节。(3)通过抽象对事物进行分类。把具有相同属性和相同操作的对象用同一个类(class)进行统一地抽象描述,每个对象是它的类的一个实例。(4)复杂的对象可以由简单的对象构成。(5)运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作。(6)对象之间通过消息进行通讯,以的各种实现情况。7.1面向对象的基本思想7.2面向对象的主要概念及基本原则
本节对面向对象中的主要概念和基本原则进行初步的阐述,以期让读者进一步地了解面向对象的基本思想对象标识就是对象的名字,有“外部标识”和“内部标识”之分。对象是现实世界中某个实际存在的事物,它可以是有形的(比如一辆汽车),也可以是无形的(比如一项计划)。对象是构成世界的一个独立单位。它具有自己的静态特征和动态特征。对象对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组操作构成。属性操作对象标识属性是用来描述对象性质的一个数据项。操作是用来描述对象行为的一个动作序列。对象,属性,操作,对象标识抽象7.2.1面向对象的主要概念类,一般类,特殊类,抽象抽象与分类:抽象(化)忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性。把具有共同性质的事物划分为一类,得出一个抽象的概念,叫做分类。类是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和操作两个主要部分。类的作用是用来创建对象,对象是类的一个实例。不同程度的抽象可得到不同层次的分类较多地忽略事物之间的差别得到较一般的类较多地注意事物之间的差别得到较特殊的类运输工具火车汽车飞机卡车轿车轮船车辆7.2.1面向对象的主要概念继承:特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承。继承意味着自动地拥有,或曰隐含地复制子类从父类中继承属性和操作,根据需要添加自己的属性和操作。继承简化了人们对事物的认识和描述,非常有益于软件复用,是OO技术提高软件开发效率的重要原因之一。公司人员姓名身份证号码股东股份
······
······职员工资··················例:由继承机制保证一般类与特殊类之间的关系叫泛化关系(继承关系),简称泛化。7.2.1面向对象的主要概念消息对象通过它对外提供的操作在系统中发挥作用。当系统中的其他对象或其他系统成分(在不要求完全对象化的语言中,允许有不属于任何对象的成分,例如C++程序中的main函数),请求这个对象执行某个操作时,该对象就响应这个请求,完成该操作。在OO方法中,把向对象发出的操作请求称为消息。目前在大部分面向对象的编程语言中,消息其实就是函数(或过程)调用。但是,函数调用只是实现消息的方式之一,上述理解只适合于顺序系统。
7.2.1面向对象的主要概念关联:类之间的静态联系称作关联。在实例化后,由类产生对象,由关联产生连接对象的链。链是关联的实例。
关联的表示符号也称作实例连接城市0..*0..*有航线
城市之间有航线教师学生0..*1指导论文
教师为学生指导论文例:7.2.1面向对象的主要概念聚合:一个(较复杂的)对象由其他若干(较简单的)对象作为其构成部分,称较复杂的对象为聚集,称较简单的对象为成分,称这种关系为聚合。聚合刻画了现实事物之间的构成关系例:汽车发动机14..60….10..1车轮公司0..*0..*法律顾问
7.2.1面向对象的主要概念(1)抽象
从事物中舍弃个别的非本质的特征,而抽取共同的、本质特征的做法叫抽象。在面向对象方法中,对象是对现实世界中的事物的抽象,类是对对象的抽象,一般类是对特殊类的抽象。这种抽象是根据开发的需要进行的。
在面向对象的不同开发阶段需要进行不同程度的抽象。
7.2.2面向对象的基本原则(2)分类把具有共同性质的事物划分为一类,得出一个抽象的概念。分类帮助我们组织我们所生活的复杂世界。我们可以对在一个特殊分类中的对象做一些假设。如果一个对象是分类(类)的一个实例,它将符合该分类的总体模式。分类:对象->类->一般类
7.2.2面向对象的基本原则(3)封装:把对象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。只是向外部提供接口,降低了对象间的耦合度。售报亭属性服务报刊A报刊B…钱箱报刊零售款货清点顾客封装的重要意义:使对象能够集中而完整地描述并对应一个具体事物。体现了事物的相对独立性,使对象外部不能随意存取对象的内部数据,避免了外部错误对它的“交插感染”。对象的内部的修改对外部的影响很小,减少了修改引起的“波动效应”。公开静态的、不变的操作,而把动态的、易变的操作隐藏起来。
封装带来的问题:编程的麻烦执行效率的损失解决办法:不强调严格封装,实行可见性控制。(混合型OOPL)例如:C++由封装机制保证:数据不能被对象的使用者直接访问。只允许通过由对象提供的方法或代码访问数据。(4)消息通信
对象之间只能通过消息进行通讯。消息必须直接发给特定的对象。消息中包含所请求服务的必要信息,且遵守所规定的通信规格说明。一条消息应包括:消息名、入口参数和返回参数。一个对象可以是消息的发送者,也可以是消息的接收者,还可以作为消息中的参数。
7.2.2面向对象的基本原则(5)多态性无多态性的泛化.类可以由层次继承结构所组织。在该结构中,子类将从位于层次结构高层的父类中继承属性、操作和关系。抽象的父类是指仅用来定义子类的超类。这样,抽象类就没有直接的实例。有多态的泛化.可以使用层次继承结构组织类,子类可以继承位于层次结构的高层的父类的属性、操作和关系。然而,子类可以定义它自己的操作来代替其任何超类的同名操作。
多态是指同一个命名可具有不同的语义。OO方法中,常指在一般类中定义的属性或操作被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。用途:把具有共同基类的对象组成一组,并对它们进行一致的处理。 例如,多边形下的三角形、长方形、正多边形。
7.2.2面向对象的基本原则多态:多边形边数顶点数据绘图XY轴向矩形x边数*顶点数据*绘图正多边形*顶点数据*绘图例:多变形:xx.绘图(8)复杂性控制
引入包(package)的概念,使模型具有大小不同的粒度层次,以利于控制复杂性。
如把分析和设计阶段的模型分别用包进行组织。7.2.2面向对象的基本原则7.3面向对象方法的发展史及现状简介1、雏形阶段60年代挪威计算中心开发的Simula67—面向对象语言的先驱和第一个里程碑(首先引入了类的概念和继承机制)。70年代CLU、并发Pascal、Ada和Modula-2等语言对抽象数据类型理论的发展起到重要作用(支持数据与操作封装)犹他大学博士生AlanKay设计了一个实验性语言Flex。从Simula67中借鉴了许多概念,如类、对象、继承等。1972年PaloAlno研究中心(PARC)发布了Smalltalk-72,其中正式使用了“面向对象”这个术语。Smalltalk的问世标志着面向对象程序设计方法的正式形成。但是这个时期的Smalltalk语言还不够完善.2、完善阶段
PARC先后发布了Smalltalk-72,76,78等版本,直至1981年推出该语言最完善的版本Smalltalk-80。
Smalltalk-80的问世被今认为是面向对象语言发展史上最重要的里程碑。迄今绝大部分面向对象的基本概念及其支持机制在Smalltalk-80中都已具备。它是第一个完善的、能够实际应用的面向对象语言。但是,Smalltalk的应用尚不够广泛,原因是:①一种新的软件方法学被广泛接受需要一定的时间。②商品化软件开发工作到87年才开始进行。③追求纯OO的宗旨使许多软件开发人员感到不便。
7.3面向对象方法的发展史及现状简介3、繁荣阶段
自80年代中期到90年代,是面向对象语言走向繁荣的阶段。其主要表现是大批比较实用的OOPL的涌现,例如C++、Objective-C、ObjectPascal、CLOS(CommonLispObjectSystem)、Eiffel、Actor等。
OO编程语言分为纯OO语言和混合型OO语言。混合型语言是在传统的过程式语言基础上增加OO语言成分,在实用性方面具有更大的优势。如C++。
此时的纯OO语言也比较重视实用性。如Eiffel、Smalltalk、Actor。
7.3面向对象方法的发展史及现状简介4、当前的状况
在编程方面,普遍采用语言、类库和可视化编程环境相结合的方式,例如,VisualC++,VisualBasic和Delphi,Java等。到九十年代,面向对象的分析与设计方法已多达数十种,这些方法都各有所长,现在趋于统一。统一建模语言UML(UnifiedModelinglanguage),其推荐的方法是USDP(UnifiedSoftwareDevelopmentProcess);UML是一种面向对象的建模语言,在软件产业界获得了很大的支持。
OPEN(OOProcess,EnvironmentandNotation),OPEN中含有建模过程和建模语言OML(OPENModelinglanguage)。OPEN在学术界影响面很大,产业界中的反响很小。在面向对象的过程指导方面,目前还没有国际规范发布。7.3面向对象方法的发展史及现状
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大龄农民工关爱帮扶与就地就近就业支持措施
- 直肠癌患者的微创治疗护理
- 2026年低碳涂料产品碳标签认证与低碳产品标识申请材料
- 2026年小学食品安全培训
- 3《鸿门宴》课件+2025-2026学年统编版高一语文必修下册
- 2026年海外仓WMS TMS系统一体化集成实施方案
- 投资控制方案的制定和实施措施
- 2026年疏散演练培训
- 新生儿脱水热的家庭护理
- 2026年山区防落石安全培训
- 《第2课 玩转季节色》课件2025-2026学年人教版美术二年级下册
- 2026年深圳市高三语文一模作文“戏剧性的瞬间”58分56分范文及点评
- 2026年淮南联合大学单招综合素质考试题库带答案详解
- 2026年安徽工贸职业技术学院单招职业技能考试题库及一套答案详解
- 江苏省重点高中2026届高三九校联考政治试卷(含答案)
- 2026中食(河北)产业发展有限公司招聘市场运营部专员考试参考试题及答案解析
- (一模)东北三省三校2026年高三第一次联合模拟考试物理试卷(含答案)
- 2026保安员资格考试培训试题及答案
- 2026湖南省卫生健康委直属事业单位招聘185人考试参考题库及答案解析
- 2026年安徽财贸职业学院单招职业适应性考试必刷测试卷必考题
- 部队保密安全教育课件
评论
0/150
提交评论