




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主讲机械学院雷琦主讲机械学院雷琦面向对象开发方法面向对象的基本原理面向对象方法的主要机制面向对象方法的开发过程面向对象开发方法一、面向对象的基本原理客观世界是实体及实体相互间的关系构成的客观世界中的实体就是对象什么是对象?如何反映和概括对象的基本特征?一部二十四史,一言以蔽之,厚脸皮黑心肠而已!封建权贵未必懂政治学,但无人不通帝王将相常胜不败的政治机密大奸大诈用而不说的争雄秘传???人的本质决定于思想与行为的统一!对象的本质是数据与操作的封装!一、面向对象的基本原理人以群分物以类聚1.区分对象及组成
区分整体对象及其组成部分如:汽车——轿车、公共汽车、货车…
汽车——车轮、车体、发动机…2.区分对象的属性
如:车——颜色、大小、耗油量…3.分类
如:世界——人、动物、植物…
交通工具——车、船、飞机…人类认识和理解现实世界的三个构造法则:一、面向对象的基本原理(一)面向对象的基本思想世界是有对象组成的,客观世界中的万物或人脑中的各种概念,都是对象——现实世界中实体的抽象模型。一、面向对象的基本原理
客观世界是由实体及实体相互间的关系构成的,因此我们把客观世界中的实体抽象为对象(Object)。面向对象就是面向“实体”,尽可能按照人类认识世界的方法和思维方式来分析和解决问题,因此,人们将任何感兴趣或要加以研究的事物、概念都统称为对象,以对象作为最基本的元素,作为分析问题、解决问题的核心。计算机实现的对象与真实世界具有一对一的关系,不必作任何转换,这样就使面向对象更易于为人们所理解、接受和掌握。(一)面向对象的基本思想一、面向对象的基本原理面向对象方法思想的四个要点:认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象组合而成。把所有对象归纳成各种对象类(简称为类(Class)),每个对象类都定义了一组数据和一组方法(操作),数据用于表示对象的属性(状态),方法是对象的功能(行为)。按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级),子类对父类有继承性。对象彼此之间仅能通过传递消息互相联系。一、面向对象的基本原理(二)面向对象的概念和术语1.对象(Object)object1.物体;2.对象,目标;3.目的,宗旨。
——《现代英语词典》对象是行动或思考时作为目标的人或事物。
——《现代汉语词典》(商务印书馆,1996)对象是一个封闭体,它是由一组数据(属性)和施加于这些数据上的一组操作(功能)构成。
——在OO方法中的定义一、面向对象的基本原理对象(Object)的定义对象属性操作——反映事物的状态、内部结构——反映事物的行为、功能对象的数据刻画了对象的属性,反映对象静止的一面,表明对象的状态;对象的操作刻画了对象的功能,表明对象的行为,反映了事物的运动规律;对象的属性决定了对象可能的行为,而对象的行为又能改变对象自身的属性(状态)。一、面向对象的基本原理接口
操作集合状态集合消息回送消息状态转换对象的本质是数据与操作的封装,这种封装性又称信息隐藏,它保证每个对象在定义时尽可能少地显露其内部的处理,从而能够很好地屏蔽局部不稳定因素,把易变因素对整个系统结构的影响降到最低。封装在一起的数据和操作之间是相互影响、相互作用的。对象的属性值(即数据)只能通过执行对象的操作来改变。由于封装,惟一能改变对象状态的方式是接收来自其他对象发来的消息,并通过自身封装的服务功能来实现。对象的内部组织与封装一、面向对象的基本原理一个对象的内部组织包括以下几个方面:■标识:即对象的名称,用来区分其他对象。■数据:用来描述对象属性的存储或数据结构,它表明了对象的一个状态。■操作:即对象的行为,又称为方法或服务。操作可分为两类:一类是对象自身承受的操作,即操作结果修改了自身原有属性状态;另一类是施加于其他对象的操作,即将产生的输出结果作为消息发送的操作。■接口:主要指对外接口,是指对象受理外部消息所指定的操作的名称集合。对象的特征一、面向对象的基本原理countervalueinit()dec()inc()counter的对象表示[示例1]:“计数器”counter属性:value——保存数值提供三个服务:init()置value为0;dec()使value减1;inc()使value加1。一、面向对象的基本原理 Play(放音)键播放
Record(录音)键录下歌曲操作 . . .状态S操作1、2、3的实现操作1操作2操作3界面[示例2]:音频(录音机)的对象表示一、面向对象的基本原理①以数据为中心。操作围绕对数据所需进行的处理来设置,而且操作的结果往往与当时所处的状态(数据值)有关。②对象是主动的。它与传统的数据有本质的不同,不是被动地等待对它进行处理,而对象为了完成某个操作,通过对象的公有接口向它发消息,请求执行某个操作,处理它的私有数据。对象的特点一、面向对象的基本原理③实现了数据封装。对象的数据对外是不可见的,对私有数据的访问或处理只能通过公有的操作进行,具有典型的黑盒子特征。④本质上具有并行性。不同对象各自独立地处理自身的数据,彼此通过传递消息完成通信,因此,本质上具有并行工作的属性。⑤模块独立性好。对象是面向对象的软件的基本模块(内聚性强,耦合性弱)。对象的特点一、面向对象的基本原理2.类(Class)
类——是一组具有相同数据结构和相同操作的对象的集合。
——在OO方法中的定义分类是人们认识客观世界的基本方法。车辆客车货车工程车
树桃树橡树松树定义一、面向对象的基本原理类与实例
一个对象就是该对象所在类的一个实例(instance),或者说,任何一个对象都是某一对象类的实例。
类是抽象虚无的,而实例是具体的。实例(具体对象)是类的具体事物,类是多个实例的综合抽象。实例既具有共性又有个性,对象的共性是指其所能接受消息的接口和实现操作功能的方法(也称行为),对象的个性是指形成的私有存储单元。一、面向对象的基本原理柯洛克(C.ROCK)柯洛克-1(C.ROCK-1)车架高科技成型铝合金避震车架高科技成型铝合金避震车架前叉铝合金避震前叉ROCKSHOXJUDYTT避震前叉飞轮SHIMANOACERA24速SHIMANOACERA24速配备双层铝圈,碟刹花鼓,可直接配装碟刹,建大26x2.35轮胎双层铝圈,PROMAX机械式碟刹,建大26x2.35轮胎自行车的共性:自行车的个性:≠≠=一、面向对象的基本原理类是对象的抽象,类的具体化就是对象,也可以说类的实例是对象。类具有属性,它是对象状态的抽象,用数据结构来描述类的属性。类具有可操作性。它是对象行为的抽象,用操作名和实现该操作的方法来描述。类是有层次的,在面向对象的方法中,自下而上对现有类的共同性质进行抽象体现了人们的归纳思维能力,称为“泛化”;自上而下把现有类划分为更具体的子类体现了人们的演绎思维能力,称为“细化”。类与对象一、面向对象的基本原理3.封装(Encapsulation)
封装就是把对象的属性和服务结合成的一个独立的系统单位,并尽可能隐藏对象的内部细节。
封装具有两层涵义,一是把对象的全部数据和操作结合在一起,形成一个不可分割的独立单位(对象);二是尽可能隐藏对象的内部细节,对外形成一个边界,只保留有限的接口与外界联系。一、面向对象的基本原理[示例]:“售报亭”的封装属性:各种报刊(名称、定价)、钱箱(总金额)服务:报刊零售,款货清点,报刊进货封装——“亭子”接口——“窗口”顾客只能从这个窗口要求提供服务,而不能自己伸手到亭内拿报刊或找零钱。款货清点是一个内部服务,不向顾客开放。一、面向对象的基本原理
对象是一个很好的封装体,它向外提供的界面包括一组数据(属性)和一组操作(服务),而把内部的实现细节隐藏起来。封装的信息隐藏作用反映事物的相对独立性,当我们站在对象以外的角度观察一个对象时,只需注意“做什么”,不必关心“怎么做”。封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效地避免了外部错误对它的“交叉感染”,错误被限制在局部。另一方面,当对象的内部需要修改时,由于它只通过少量的服务接口对外提供服务,因此大大减少了内部的修改对外部的影响,减少了“波动效应”。一、面向对象的基本原理哺乳动物人兽学生教师小学生大学生孙三李四虎东北虎赵一钱二
继承者称为子类,被继承者称为父类,单一父类的情形称为单继承(例如树形结构),两个以上父类的情形称为多继承。4.继承(Inheritance)
继承具有传递性,若类C继承类B,类B继承类A,则类C继承类A。继承的优点在于可以极大程度地减少设计和程序实现中的重复性。一、面向对象的基本原理传送对象(SENDER)接受对象(RECEIVER)接口消息<操作名、参数>5.消息(Message)
消息是对象之间交互、通信的手段,是外界能够引用对象操作及获取对象状态的唯一方式。一个对象向其他对象发出带有参数的消息,接受消息的对象激活相应的方法,执行相应的操作,完成所需要的操作,也叫做对象的行为,从而改变自身的状态。一、面向对象的基本原理协议或称外部接口、方法
协议或称外部接口,是一个对象对外服务的说明,它告知一个对象可以为外界做什么,外界能够并且只能向该对象发送协议中所提供的消息,请求该对象服务。
方法是实现每条消息具体功能的手段。方法与协议一一对应,有一条协议就必然有一个方法实现之。外界只能通过对象的协议或外部接口向该对象发送消息。封装使对象成为独立的系统单位,而消息则提供各对象间唯一合法的动态联系途径。一、面向对象的基本原理[示例]顾客对售报亭说:“我买一份《宁波晚报》”。售报亭接收到这个消息后执行一次对外提供的服务(报刊零售),这条消息包含下述信息:对象标识——接受者(售报亭)服务标识——要求的服务(报刊零售) 输入信息——《宁波晚报》,一份,1.00元钱回答信息——买到的《宁波晚报》报纸和找零0.50元钱一、面向对象的基本原理(三)面向对象方法的本质“面向对象”是一种认识客观世界的认知方法学,这种认识方法将客观世界看成是由许许多多不同对象构成的,每一个对象都有自己的运动规律和内部状态,不同对象间的相互作用和通讯构成了完整的客观世界,因而,从人们思维模型和认识事物的角度,面向对象很自然地与客观世界的固有特征相对应。一、面向对象的基本原理面向对象=对象(属性及服务的封装)+分类+继承+消息通信二、面向对象方法的主要机制OO最基本的思想:通过系统中的最稳定(即那些对变化不敏感的部分)的方面(对象)来刻画系统,通过信息屏蔽将比较容易变化的元素隐藏,把易变因素对整个系统结构的影响降到最低。(一)抽象、封装(信息屏蔽机制)对象是事物的行为和状态两种特性的抽象。状态是行为的结果,行为是状态或内部结构的变化。
抽象机制就是把对象的动态特性与静态特性抽象为数据结构以及在数据结构上施加的一组操作,并把它们封装在一起,使对象状态变成对象属性值的集合,对象行为变成能改变对象状态的操作的集合(方法的集合、功能的集合)。1.抽象、抽象机制二、面向对象方法的主要机制2.封装、信息屏蔽机制封装又称为信息屏蔽机制或信息隐藏机制,是指软件组成的部件应当分离或隐藏。用户只能看见对象封装截面上的信息,对象内部对用户而言是隐蔽的。封装的目的在于将对象的使用者和对象的设计者分离开来,使用者不必知道行为实现的细节,只需用设计者所提供的消息来访问对象。二、面向对象方法的主要机制封装的另外一个目的是为了将维护局部化。面向对象的抽象封装使对象信息隐藏在局部。当对象进行修改,或对象自身产生错误的时候,由此带来的影响仅仅局限在对象内部而不会波及其他对象乃至整个系统环境,这极大方便了软件设计、构造和运行过程中的检错、修改。易维护性二、面向对象方法的主要机制(二)消息传递机制消息用来请求对象执行某种处理,或回答某些信息的要求,统一了数据流和控制流。消息完全由接收对象解释,接收对象独立决定采用什么方式完成所需的处理。一个对象能接收不同形式、不同内容的多个消息。同一条消息也可以同时发至多个对象,并允许接受同一消息的对象按各自的方式响应。消息传递机制很自然地与分布式并行、多机系统、网络通信等模型取得一致,强有力地支持复杂大系统的分析与运行。二、面向对象方法的主要机制(三)继承性、可重用机制继承性又称可重用机制(也称代码共享机制或程序共享对象机制),它是软件部件化的基础。继承是面向对象特有的,亦是最有力的机制。通过继承支持重用,实现软件资源共享、演化以及增强扩充。继承性是面向对象方法实现可重用性的前提和最有效的特性,它不仅支持系统的可重用性,避免了属性描述和操作程序的冗余,而且还促进了系统的可扩张性。二、面向对象方法的主要机制(四)多态性
多态性:同一消息发送至不同类或对象可导致不同的操作结果,使软件开发设计更便利,编码更灵活。多态性支持“同一接口,多种方法”,使高层代码或算法程序只写一次,而低层可多次复用,从而提高了程序设计的灵活性和程序设计效率。二、面向对象方法的主要机制三、面向对象方法的开发过程系统调查和需求分析系统分析阶段OOA系统设计阶段OOD系统实现阶段OOP(一)系统分析阶段,OOA
面向对象分析(ObjectOrientedAnalysis,OOA),就是抽取和整理用户需求并建立问题域精确模型的过程。在繁杂的问题领域中抽象地识别出对象及其行为、结构、属性等。识别对象/类确定对象的属性分析陈述用户需求确定对象的服务确定对象/类的关系三、面向对象方法的开发过程
某物资出入库管理系统主要对产成品、零部件/中间件、原材料、辅料及标准件等物资进行管理,物资种类不多,但出入库频率较高,出入量大。库存管理员通过该系统实现物资出入库登记,定期汇总核算、生成报表,不定期查询物资库存等功能。[示例]:某物资出入库管理系统分析三、面向对象方法的开发过程1.分析陈述用户需求系统需要维护和提供的信息有:1)物资信息,包括物资名称、种类、计量单位、单价等;2)出入库信息,包括物资出入库时间、物资名称、数量、供货单位、提货单位等;3)库存信息,包括库存物资名称、数量、安全库存点等;4)汇总核算信息,包括某时间段内一种物资出入库总数量、总金额等;5)库存管理员信息,包括姓名、使用权限、密码等。三、面向对象方法的开发过程验收单领料单物资台帐汇总表核算表出库流水帐入库流水帐单据表类:帐2.识别对象/类实体对象三、面向对象方法的开发过程物资属性:编码名称计量单位规格超储点欠储点服务领料单属性:时间价格数量领料单位经办人服务3.定义对象的属性以对象“物资”和“领料单”为例:三、面向对象方法的开发过程物资属性:编码名称计量单位规格超储点欠储点服务:产生()释放()领料单属性:时间价格数量领料单位经办人服务:产生()释放()4.确定对象的服务三、面向对象方法的开发过程验收单领料单物资台帐汇总表核算表单据表帐继承:组合:入库流水帐出库流水帐5.实体对象的静态关系三、面向对象方法的开发过程(二)面向对象设计,OOD
面向对象设计(ObjectOrientedDesign)阶段要解决的问题是如何把分析阶段确定出来的对象和类配置起来以实现系统功能,并建立系统体系结构。从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程。或者说,面向对象设计就是用面向对象观点建立求解域模型的过程。三、面向对象方法的开发过程1.面向对象设计的准则模块化支持性强信息隐蔽弱耦合强内聚可重用三、面向对象方法的开发过程2.面向对象设计的主要任务(1)对实体对象进行增、并、改,并识别接口对象和控制对象;(2)确定实体对象、接口对象和控制对象之间的各种关系,完善对象类结构图(其中包括对象静态联系图和对象关系图);(3)系统的体系结构设计。三、面向对象方法的开发过程
系统实现阶段(Object-OrientedProgramming,简称OOP)。根据系统设计阶段的文档资料,运用面向对象的程序设计语言加以实现。面向对象实现主要包括两项工作:把面向对象设计结果翻译成用某种程序语言书写的面向对象程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国银行大同市平城区2025秋招笔试银行特色知识专练及答案
- 中国银行蚌埠市禹会区2025秋招笔试管理营销专练及答案
- 邮储银行贵港市港南区2025秋招笔试数量关系题专练及答案
- 邮储银行清远市佛冈县2025秋招半英文面试题库及高分答案
- 中国银行七台河市桃山区2025秋招笔试管理营销专练及答案
- 中国银行周口市扶沟县2025秋招笔试英语阅读理解题专练30题及答案
- 中国银行商丘市永城市2025秋招笔试金融学专练及答案
- 邮储银行佳木斯市前进区2025秋招笔试管理营销专练及答案
- 中国银行郑州市巩义市2025秋招笔试英语完形填空题专练30题及答案
- 成人高考高起点语文考试真题和答案解析
- 广东省东莞市五校2024-2025学年高一上学期第一次联考数学试题(无答案)
- PVC-地面中水泥基自流平找平层的施工作业指导书
- 国家公务员行测数量关系(数字推理)模拟试卷1(共253题)
- 道路施工分包合同范例
- 北师大版四年级数学上册第五单元《方向与位置》(大单元教学设计)
- 《民航客舱设备操作与管理》课件-项目二 客舱服务设备
- 咖啡因实验报告咖啡因与老年人认知功能
- GB 32032-2024金矿开采、选冶和金精炼单位产品能源消耗限额
- 熟能生巧儿童成语故事绘本
- 2024年四川省自然资源投资集团有限责任公司招聘笔试参考题库附带答案详解
- 2024年社工考试题库大全(含答案)
评论
0/150
提交评论