![面向对象思想、概念及开发方法_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/a98035c0-bd48-4dbc-847e-b34607175ab4/a98035c0-bd48-4dbc-847e-b34607175ab41.gif)
![面向对象思想、概念及开发方法_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/a98035c0-bd48-4dbc-847e-b34607175ab4/a98035c0-bd48-4dbc-847e-b34607175ab42.gif)
![面向对象思想、概念及开发方法_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/a98035c0-bd48-4dbc-847e-b34607175ab4/a98035c0-bd48-4dbc-847e-b34607175ab43.gif)
![面向对象思想、概念及开发方法_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/a98035c0-bd48-4dbc-847e-b34607175ab4/a98035c0-bd48-4dbc-847e-b34607175ab44.gif)
![面向对象思想、概念及开发方法_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/a98035c0-bd48-4dbc-847e-b34607175ab4/a98035c0-bd48-4dbc-847e-b34607175ab45.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、123目录CONTENTS面向对象中的核心思想开发方法主要的概念123目录CONTENTS面向对象中的核心面向对象中的核心思想思想开发方法主要的概念过程式程序设计结构化程序设计面向对象程序设计C语言完全面向过程C+出现面向对象思想JAVA完全面向对象l面向对象:l先确定数据结构,再确定算法l构造一个对象模型,将数据与方法组织在一起l面向过程:l先确定算法,再确定数据结构l建立数据结构存放数据并定义方法(函数)来操作数据l面向过程(三个过程)l1、把衣柜打开(得到打开的衣柜)l2、把衣服放进去(打开门后,得到里面存放衣服的衣柜)l3、把衣柜门关上(打开门、存好衣服获得关好门的衣柜)每个过程有一个
2、阶段性的目标,依次完成这些过程,就能把衣服存进去。面向对象(三个动作)每个动作有一个执行者,它就是对象、 1、衣柜,你给我打开门 2、衣柜,你给我把衣服装进去 3、衣柜,你给我把门关上依次做这些动作,就能把衣服存入衣柜。l面向对象的思想最初出现于挪威奥斯陆大学和挪威计算机中心共同研制的Simula 67语言中。l此后,面向对象的概念和应用已超越了程序设计和软件开发。扩展到如数据库管理系统,交互式界面,分布式系统,网络管理结构和人工智能等领域。问题域(Domain)以问题域中的事物为中心思考Object1Object2Objectn对象归类抽象化Class1Class2Classn类实例化,定义
3、对象,构建系统,形成解决方案l数据抽象一种设计方法l把一组数据及作用与其上的操作组成一个设计实体或单位。接口说明外部可见,其实现是隐藏的,不可见。l发展的三个阶段0101010101Interger Real Boolean用户定义抽象数据类型l抽象数据类型是指“一个值集和作用在该值集上的操作集”。抽象数据类型的定义只决定于其逻辑特性,与其具体的计算机内部实现无关。一个抽象数据类型可以分解为语法、语义、表示和算法4个部分。功能抽象模块数据抽象模块l试想抽象数据类型需要借助于高级程序设计语言;l在面向过程的语言中,用户可以自己定义数据类型;l在面向对象的程序设计语言中,借助于对象描述抽象数据类型
4、。(class)l面向对象设计方法:实现问题空间和问题求解空间的近似和直接模拟意识部分教室物质部分603教室抽象部分教室类具体部分一个对象:教室实例现实问题空间解空间l在面向对象的软件开发过程中,开发者的主要任务就是先建立模拟问题领域的对象模型。l问题域是由对象构成的,每个对象拥有各自的属性和方法,属性用于描述对象的物理特征,而方法用于描述对象的行为,对象是属性和行为的统一体。l从对象出发构造软件系统。强调直接以问题域中的对象为中心来认识问题和解决问题,软件系统对象是问题域对象的抽象。l软件系统处理的基本单元是类,类是具有相同属性和方法的对象集合。从软件系统对象到类是一个抽象的过程,符合人们通
5、常的思维方式。l软件系统中类的实例化对象可以直接映射到问题域中的对象。123目录CONTENTS面向对象中的核心思想开发方法主要的概念主要的概念l对象l类l实例l消息l继承l封装l多态性l面向对象=对象+分类+继承+通信l对象就是客观实体的抽象。是构成系统的基本单位。对象是由私有数据(属性)即作用于七伤的一组操作(行为)所构成的一个封闭整体。对象的属性用成员变量表示,对象行为用成员方法表示。l对象=行为(功能、方法、服务)+属性(数据)对象对象对象对象属性行为接口l从设计人员的角度看,对象是一个完成特定功能的程序模块l从用户的角度看,对象为他们提供了所希望的行为。l对象通过接口来对外提供服务。
6、l类又称对象类(Object Class),是一组具有相同属性和相同操作的对象的集合l对象是类的实例,类是对象的模板。由于对象是类的实例,在进行分析和设计时,通常把注意力集中在类上,而不是在具体的对象上,l类具有属性,用数据结构来描述类的属性l类具有操作,它是对象的行为的抽象,操作实现的过程称为方法(method),方法有方法名,方法体和参数。l属于某类的具体对象就是该类的实例。l对象之间的联系是通过传递消息来实现的。l消息就是向对象发出的服务请求(互相联系、协同工作等)。是对象之间进行通讯的一种数据结构。l消息统一了“数据流”和“控制流”。l一个对象接收到消息则调用消息中指定的方法,并将形式
7、参数与参数表中相应的值结合起来。消息到达方法 数据l1)函数调用可以带或不带参数,但是消息至少带一个参数,它表明接收该消息的对象,消息中钙素对象做什么的部分称为消息操作,l2)消息操作名类似于函数名,其本质区别在于:函数名代表一段可执行的代码,但消息操作名具体功能的选定还取决于接收消息的对象本身l3)函数调用是过程式的(如何做),消息传送是说明式的(做什么),具体如何让做,由对象根据收到的消息自行决定。l是使用现存的定义作为基础,建立新定义的技术。是父类和子类之间共享数据结构和方法的机制,这是类之间的一种关系。l继承分: 一个子类只有一个父类 子类只继承一个父类的额数据结构和方法。单重继承 一
8、个子类可有多个父类 继承多个父类的数据结构和方法。多重继承人学生教师工人农民大学生中学生小学生l封装是一种信息隐藏技术,就是把对象的属性和行为行结合构成一个独立的基本单位,用户只能见都啊对象封装界面上的信息,仅对外公开接口。l封装有助于建立子系统之间的送耦合关系,提高独立性。l可以防止使用者错误修改系统的属性,提高软件的可重用性。lclass Clockll public : void SetTime(int NewH,int NewM, int NewS); void ShowTime(); private : int Hour,Minute,Second; ;特定的访问权限外部接口l矛盾吗
9、? NO!l封装性主要指的是对象的封装性,引入继承机制后,对象仍然是封装好的实体,其他对象与它通信只能发送消息。l相似性:共享代码! 继承:静态共享代码 封装:动态共享代码l一个名字具有多种语义。l同一对象接收到不同消息采用不同的行为方式l不同对象收到相同消息时产生不同的动作l1)对象唯一性:每个对象都有自身唯一的标识,在对象的整个生命周期中,它的标识都不改变,不同的对象有不同的标识。l2)分类性:指将具有一致的数据结构(属性)和行为(操作)的对象抽象成一类。l3)封装性(信息隐蔽):对象是封装的最基本单位,创建类的实例即建立对象,封装保证软件部件具有优良的模块性的基础。每个软件的部件都有友好
10、的界面接口,软件部件的内部实现与外部可访问性分离。 封装防止了程序相互依赖性而带来的变动影响;面向对象的封装比传统语言的封装更为清晰、更为有力。l4)继承性:子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类时,可以在现存的类的基础上进行,在已存在的类所定义的内容的基础上,加入若干新的内容。l继承性是面向对象程序设计语言不同于其他语言的最主要的特点,是其他语言所没有的。l类的继承性使所建立的软件具有开放性、可扩充性,它简化了对象、类的创建工作量,增加了代码的可重用性。l单继承,可用树型结构来描述l多继承,用网格结构来描述。l通过继承,使公共的特性能够共享,提高软件的
11、重用性。l5)多态性:指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。l多态性允许每个对象以适合自身的方式去响应共同的消息。l多态性增强了软件的灵活性和重用性。l6)易维护性123目录CONTENTS面向对象中的核心思想开发方法开发方法主要的概念lBooch最先描述了面向对象的软件开发的基础问题,支出面向对象开发是一种根本不同于传统的功能分解的设计方法。l它最大的特点是将几类不同的图表有机结合起来。lBooch方法可分为逻辑设计和物理设计。 逻辑设计包括类图和对象图,着重于类和对象的定义。 物理设计包括模块图和进程图,着重于对软件系统的结构描述。l Booch方法也分为静态模型
12、和动态模型(状态图和时序图) lBooch认为软件开发是一个螺旋式上升的过程,在上升的每个周期中,有以下步骤:l发现类和对象。主要包括两项活动,即在问题域空间内发现最关键的抽向和提出能使对象协同工作已完成某些功能的机制。l确定类和对象的含义。l确定类和对象之间的关系。l实现类和对象。lOMT方法由James Rumbaugh等人提出,它采用三种模型来描述分析与设计,分别是对象模型、动态模型和功能模型。l对象模型的描述手段是对象图,用来刻画对象的静态的结构及相互间的关系。l动态模型主要采用状态转换图(Statecharts)来描述,用来刻画对象的动态行为,并定义和识别对象的行为。l功能模型主要表
13、达系统内部数据流的传递和处理过程。lCoad-Yourdon方法严格区分了面向对象分析OOA(OO Analysis)与面向对象设计OOD(OO Design)。lOOA的步骤:l标识类和对象l标识结构(一般特殊、整体部分)l标识主题l定义属性l定义服务l五个层次l类和对象层l结构层l主题层l属性层l服务层l四个部分l问题域部分(PDC)l人机交互部分(HIC)l任务管理部分(TMC)数据管理部分(DMC)lJacobson提出的面向对象软件工程(OOSE,Object Oriented Software Engineering )将面向对象的思想贯穿到软件工程中,目的是为了得到以个能适应变化
14、、健壮性好和维护性强的系统。lOOSE采用五个模型来完成其实现目标系统的过程:l 需求模型(RM)。捕捉用户需求,建模手段有用例图、问题域对象模型和人与系统的接口界面。l分析模型(AM)。该模型定义一个健壮的、可扩展的系统的基本结构。OOSE定义了三种对象类型:实体对象、界面对象和控制对象。l设计模型(DM)。DM将AM的对象定义为块,最终表现为以个个类(对象)模块,都有详细定义,都有伪代码实现。l实现模型(IM)。用某种语言来实现DMl测试模型(TM)。关于类(对象)的底层测试(如类方法和类间通讯等的测试)可由程序人员自行完成,单继承测试应该由独立于开发组的测试人员完成。lOOSE开发活动主
15、要有三个步骤:分析、构造和测试。内容内容方法方法面向对象方法面向对象方法结构化生命周期法结构化生命周期法分析工具用例图、类图、交互图、活动图等。业务流程图、数据流图、E-R图、数据字典等关注角度对象(属性、行为、结构、连接方式)功能、模块与数据库关系实体类与数据库中表有对应关系功能模块与数据库结构相互独立,无映射问题处理单位类模块数据处理方式通过接口依靠对象自身的成员函数处理直接通过函数处理控制程序方式事件驱动模块调用、控制面向对象方法面向对象方法结构化方法结构化方法原型法原型法优点1、分析、设计中的对象和软件中的对象一致;2、实现软件的复用,增强了系统的适应性,简化程序设计;3、系统稳定性、
16、可重用性及可维护性好;4、开发周期短1、“自上而下”地分析和设计,保证了系统的整体性和目标的一致性;2、面向用户,遵循用户至上的原则;3、严格区分系统开发的阶段性,每一阶段的工作成果是下一阶段的依据,便于系统开发的管理和控制;4、按工程标准建立标准化的文档资料1、充分利用最新软件工具,系统开发周期短,费用相对少2、用户参与开发过程,系统更加贴近实际,易学易用,减少培训时间;3、系统开发过程循序渐进,复合人们认识事情的规律,信息反馈及时,确保较好的用户满意度;4、构造用户看得见,摸得着的系统原型,缩小了理解和认识上存在的差距。面向对象方面向对象方法法结构化方法结构化方法原型法原型法缺点1、系统在分析阶段对对象的抽象困难;2、需要一定的软件基础支持才能应用;3、结构化程度不高1、用户素质、系统分析员和管理者之间的沟通要求高;2、开发周期长,文档过多,难于适应环境变化;3、结构化程度较低的系统,在开发初期难以锁定功能要求;4、各阶段的审批工作困难;所使用的工具落后;1、不适合大规模系统开发;2、开发过程管理要求高,要经过修改、评价的多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 零售业中的顾客安全保障措施
- DB3715T 69-2025研学旅游指导师服务规范
- 专业技术人才海外培训服务合同(版)
- 上海股权转让合同文本
- 二手房转让合同定金协议书范本
- 中外合资企业劳动合同样本
- 个人保证担保融资合同协议
- NBA赛事中国区电视转播合同
- 互利共赢投资合作合同
- 个人物流配送服务合同模板
- 注射用醋酸亮丙瑞林微球
- 部编版语文五年级下册 全册教材分析
- 胎儿性别鉴定报告模板
- 大学生就业指导PPT(第2版)全套完整教学课件
- 家具安装工培训教案优质资料
- 湖南大一型抽水蓄能电站施工及质量创优汇报
- 耳穴疗法治疗失眠
- 少儿财商教育少儿篇
- GB 1886.114-2015食品安全国家标准食品添加剂紫胶(又名虫胶)
- envi二次开发素材包-idl培训
- 2022年上海市初中语文课程终结性评价指南
评论
0/150
提交评论