版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C 是面对过程C+、 JAVA 是面对对象一个博大,一个精深.总体而言,面对对象简洁,面对过程对人员要求素养过高面对过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。骤中的行为。艾兰.库伯的软件创之路中提到:面对对象的大局部思想在面对过程中也能表达但面对过程最大的问题或许是唯一先天的缺陷在于随着系统的膨胀,面对过程将无法应付,最终导致系统的崩溃目前看来,好似有肯定成效但仍任重道远做一些比照来说吧:分析 根本构件 方法 工具面对过程 基于算法 函数过程 数据流图、伪代码面对对象 基于对象 类 UML 建模Rose,viso 等其实我始终认为
2、,不管是面对对象,还是面对过程,都表达了一种软件重用的思想!面对对象中的过程和函数和面对过程中的分别不是很大,所以数据流图和伪代码还是有用的。什么是面对对象 面对过程 面对大事2022-06-0511:26面对过程是在面对对象消灭之前,以及之后,甚至至今都应用于程序开发中的程序设计思想。面对过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面对对象是把构成问题 分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。如:一辆汽车用面对过程的思想去考虑它应当是这样的:如何启动汽车、如何起步、加速
3、、刹车、熄火等一个个操作。而汽车在这里并不是我们所关心的。而面对对象则以汽车为对象,一切由汽车开头,以上的可用操作,即功能是汽车这个对象本身所具有的,做任何操作只要告知汽车就可以了。C 语言是面对过程的编程,它的最重要特点是函数,通过主函数来调用一个个子函数。程序运行的挨次都是程序员打算好了的。C+是面对对象的编程,类是它的主要特点,程序执行过程中,先由主函数进入,定义一些类,依据需要,执行类的成员函数,过程的概念被淡化了 际上过程还是有的,就是主函数的那些语句,类就是对象,所以我们称之为面对对象程序设计。Visual C+消息发生,假设有相比之下,它过程式的味道几乎没有了,但是实际上也是面对
4、过程的,这个过程就是检验有没有大事,只不过这个过程被隐蔽了起来。面对过程是把全部的功能全部在一个大的类里定义出来,当系统浩大时,功能多了,各种操作之间的调用关系也很简单,当需要修改一个功能时就可发一连串的改动,使修改和维护本钱很昂贵。“授权”,意思是管 者把不同的任务交给相应的人去处理,这样就把责任分发到相应的负责人,治理者只需要记录谁负责什么就可以,哪里出了问题或是没有完成任务,就找应的负责人,只要修改相应的类以及微小部份的其他改动。面对对象的思想需要大家在实际工作中去渐渐体会,通过和面对过程的比照,我们就能觉察它的优越性,进而更好地把握运用。对于类的理解面对对象是在分析和解决问题的时候,将
5、涉及的数据和对数据的操作封装在类中。通过类可以创立对象。比方:可以构建一个Circle 类,一个表示圆的它是半径不同的全部的圆的一个抽象的描述。通过类可以创立任意多个对象,这些对象之间是相互独立的。可以由圆类Circle c1 和圆 c2。而 c1 和是彼此独立的对象。这样,对于事物的观控粒度,由某个具体的对象扩大到一个类。这样符合人们生疏事物的习惯。publicclassCircleprivatedoubleR;运算输出。面对过程程序设计 需要变更习惯的思维方法以贴近计算机的内部工作机理。面对过程程序设计所具有的流的工作性质,试图通过信息流及其转换来生疏系统,不仅加大了程设计的难度,同时亦使
6、得程序的可理解性比较差。面对对象程序设计方法中,一种普遍承受的优化方法是使用构造化的程序设计方法。 面对过程程序设计方法一般适宜承受自上而下的设计方法。面对过程程序设计方法需要在一开头就全面的,自上而下的设计整个应用程序的架构,因此要求程序设计者对问题域有全面的了解。 面对过程程序设计方法很难复用以前已经设计完成的软件。面对对象程序设计是一种自下而上的程序设计方法,往往从问题的一局部着手,一点一点地构建出整个程序。面对对象设计一数据为中心,类作为表现 据的工具,成为划分程序的根本单位。面对对象有以下几个重要特点:客观世界有对象组成对象抽象为类类与类之间存在继承关系对象之间通过传递消息而彼此联系
7、关于面对过程及面对对象编程2022-06-10 10:00JAVA、C+、C#均是面对对象的语言、C 语言是面对过程语言、PHP 既支持面对过程也支持面对对象的功能,面对过程及面对对象均有自己的优缺点,也均有自己的适用范围。面对过程优点:性能比面对对象高,由于类调用时需要实例化,开销比较大,比较消耗资源;比方单片机、嵌入式开发、Linux/Unix 等般承受面对过程开发,性能是最重要的因素。面对对象更加易于维护缺点:性能比面对过程低面对对象程序设计的一些显著的特性包括:.程序设计的重点在于数据而不是过程;.程序被划分为所谓的对象;.数据构造为表现对象的特性而设计;.函数作为对某个对象数据的操作
8、,与数据构造严密的结合在一起;.数据被隐蔽起来,不能为外部函数访问;.对象之间可以通过函数沟通;.的数据和函数可以在需要的时候轻而易举的添加进来;.在程序设计过程中遵循由下至上bottom-up的设计方法。面对对象程序设计在程序设计模式中是一个的概念,对于不同的人可能意味着不同的内容。我们对面对对象程序设计的定建类似模块的拷贝。这样的程序设计方法称为面对对象程序设计。“由于内存区间是相互独立的,所以对象可以不经修改就应用于多个不同的程序中。什么是面对对象程序设计面对对象程序设计OOP技术吸取了构造化程序设计中好的思想,并将这些思想与一些的、强大的理念相结合,从而给当你定义了一个对象,你就隐含的
9、创立了一个的数据类型。对象在一个面对对象的系统中,对象是运行期的根本实体。它可以用来表示一个人或者说一个银行帐户,一张数据表格,或者其什么需要被程序处理的东西。它也可以用来表示用户定义的数据,例如一个向量,时间或者列表。在面对对象程序设计中,问题Pascrecord 和 C 中的构造一样。当一个程序运行时,对象之间通过互发消息来相互作用。例如,程序中包含一个“customer“account“对象,而 account 对象发送一个消息,查询其银行帐目。每个对象都包含数据以及操作这些数据的代码。即使不了虽然不同的人会以不同的方法实现它们。类数据类型。事实上,对象就是类类型classtype的变量
10、。一旦定义了一个类,我们就可以创立这个类的多个对象,每个对象与fruit一个整数对象的语法一模一样。数据抽象和封装称为类的行为称为封装。数据封装是类的最典型特点。数据不能被外界访问,只能封装在同一个类中的函数访问。这些函数供给了对象数据和程序之间的接口。避开数据被程序直接访问的概念被称为“数据隐蔽“数据类型ADT。封装了数据和操作这些数据的代码的规律实体。或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据供给了不同别的保护,以防止程序中无关的局部意外的转变或错误的使用了对象的私有局部。继承于鸟类。这种分类的原则是,每一个子类都具有父类的公共特性。OOP 中,继承的概念很好的支
11、持了代码的重用性reusability,也就是说,我们可以向一个已经存在的类中添加的特接近需要,而不是完全符合需要的类,并且可以以某种方式修这个类,而不会影响其它的东西。多态OOP 的另一个重要概念。多态的意思是事物具有不同形式的力量。举个例子,对于不同的实例,某个操作可能会有不的行为。这个行为依靠于所要操作数据的类型。比方说加法操作,假设操作的数据是数,它对两个数求和。假设操作的数据是字串,则它将连接两个字符串。共的类,它们那些操作可以通过一样的方式予以调用。多态在实现继承的过程中被广泛应用。面对对象程序设计语言支持多态,术语称之为“oneinterfacemultiplemethod一个接
12、口,多个实现“。简洁来说,多态机制许通过一样的接口引发一组相关但不一样的动作,通过这种方式,可以削减代码的简单度。在某个特定的状况下应当作出怎样的作,这由编译器打算,而不需要程序员手工干预。bug 的产生。应于问题中的各个元素。面对过程的程序设计的一些特点如下:.强调做算法;.大程序被分隔为很多小程序,这些小程序称为函数;.大多数函数共享全局数据;承受由上至下的程序设计方法。动态绑定可知。它与多态和继承的联系极为严密。一个多态引用的函数调用打算于这个引用的动态类型。消息传递如下:1、创立类,这些类定义了对象及其行为;2、由类定义创立对象;3、建立对象之间的通讯。立系统沟通。过程,以产生预期的结
13、果传递的消息的内容包括接收消息的对象的名字,需要调用的函数的名字,以及必要的信息。对象就有一个生命周期。它们可以被创立和销毁。只要对象正处于其生存期,就可以与其进展通讯。OOP 的优点OOP 具有很多优点,无论是对于程序设计者或者用户来说都是如此。面对对象为软件产品扩展和质量保证中的很多问题供给解决方法。这项技术能够大大提高程序员的生产力,并可提高软件的质量以及降低其维护费用。其主要的优点陈设于下:1、通过继承,我们可以大幅削减多余的代码,并扩呈现有代码的用途;这里所谓的“标准“指程序员之间彼此达成的协议构建我们的程序,而不必一切从头开头。这以削减软件开发时间并提高生产效率;3、数据隐蔽的概念
14、帮助程序员们保护程序免受外部代码的侵袭;4、允许一个对象的多个实例同时存在,而且彼此之间不会相互干扰;5、允许将问题空间中的对象直接映射到程序中;6、基于对象的工程可以很简洁的分割为独立的局部;7、以数据为中心的设计方法允许我们抓住可实现模型的更多细节;8、面对对象的系统很简洁从小到大逐步升级;9、对象间通讯所使用的消息传递技术与外部系统接口局部的描述更简洁;10、更便于把握软件简单度。换代。假设重用没有能够实现,那么就需要进展严格的把握和治理。面对对象程序设计语言 C Pascal OOP 概念的程序设计语言则可以让一切变得简洁。OOP OOP 特性,语言可以分为以下两类:、基于对象的程序设
15、计语言;、面对对象的程序设计语言。基于对象的程序设计语言仅支持封装和对象辨识。一个面对对象的程序设计语言所要支持的重要特性如下:.数据封装.数据隐蔽和访问机制.对象的自动初始化和去除.操作符重载支持对象风格程序设计的语言称为基于对象的程序设计语言。它们不支持继承和动态绑定。Ada 就是一个典型的基于对象的程序设计语言。面对对象的程序设计不仅仅包含基于对象程序设计的特性,还支持继承和动态绑定。OOP 的应用OOP 最有前途的应用领域如下:1、实时系统;2、仿真和建模;3、面相对象数据库;4、超文本、超媒体和扩展文本;5、AI 和专家系统;6、神经网络和并行程序设计;7、决策支持和办公自动化系统;
16、8、CIM/CAM/CAD 系统。ViaSQL 语句就可以搞定的没有多大必要用面对对象,也有必要用什么设计模式,那样就是简洁问题简单化了。业务规律比较简单的适合用面对对象,这样当需求有变化时,维护起来会比较便利。进展优化。网上觉察了一篇文章,说了一下 OP 与 OO 的不同,并且打了一个比方,通俗易懂。 谓盖浇饭,北京叫盖饭,东北叫烩饭,广东叫碟头饭,就是在一碗白米饭上面浇上一份盖菜,你宠爱什么菜,你就浇上什么菜。觉得这个比方还是比较贴切的。份青椒土豆丝。有蛋炒饭那么香。多的组合,而且不会铺张。盖浇饭的好处就是“菜“饭“分别,从而提高了制作盖浇饭的机敏性。饭不满足就换饭,菜不满足换菜。用软件工
17、程的专业术语是“可维护性“比较好,“饭“ 和“菜“的耦合度比较低。蛋炒饭将“蛋“饭“搅和在一起,想换“蛋“饭“中任何一种都很困难,耦合度很“可维护性“3 个方面:可理解性、可测试性和可修性。面对对象的好处之一就是显著的改善了软件系统的可维护性。Via参考:a97786面对8程面对对优点缺点&tB5&do=blog &id=230205/24/QA 的同学介绍一下面对对象和UML 相关的内容。这是第一篇,介绍主UML 类图的绘制。类概念:类似对象的一种软件抽象,创立对象的模板。UML 图:属性和操作之前可附加一个可见性修饰符。加号+表示具有公共可见性。减号-表示私有可见性。#号表示受保护的可见性
18、。省略这些修饰符表示具有package包 的参数,以及返回类型。接口“接口分别原则”,参见SOLID 原则(s)UML 图:UML 图呈现的样式会有几种变化,但内容都是一样的。方向性。开口箭头指出关联的方向。只有一个开口箭头的关联是单向的:它仅可以 方向性。开口箭头指出关联的方向。只有一个开口箭头的关联是单向的:它仅可以 在一个方向箭头的方向上移动。没有箭头时,表示关联是可以在两个方向上移动。标签。标签是可选的,一般有一到两个词组成,用来描述关联。多重性Multiplicity)。关联的多重性在线的两端标出,每个方向有一个多重性指示器。 Attributes】、【Suppress Operat
19、ions】来调整。联系Association概念:力量。假设没有箭头,示意是一种双向的导航力量。UML 图:聚合Aggregation概念:有时对象会有其他对象组成。例如,飞机由机身、机翼、引擎、起落架等组成。这些全部都是聚合这个概念的例子,它表示“is part of”关系。UML 图:classNode private:vectoritsNodes;上述代码只有当子节点不会成为父节点的父节点时即,必需是树构造,不能是图构造, 才能称之为聚合。组合Composition概念:组合是更强形式的聚合,其中“整体”负责局部,每个“局部”对象也仅与一个整体对象联系。例如,在任何给定时间,引擎是且仅是
20、飞机的一局部。而且,除了飞机以外与引擎对象发生交互。UML 图:classCarpublic:virtualCardeleteitsCarb;private:Carburetor*itsCarb;依靠Dependency概念:象进展协作,它需要了解这个对象。这意味着两个对象之间必需存在对象关系或part-of 关系。当两个对象之间不存在长久关联的时候,我们需要在两个类之间建立依靠。UML 图:泛化(Generalization)概念:表示一个更泛化的元素和一个更具体的元素之间的关系。UML 图:AbstractKmsTheme 被标记为抽象的名字是斜体。实现Realization概念:指定两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。UML 图总结面对对象的概念和术语汇总表术语描述AbstractClass 抽象类 不能实例化的类Abstraction 抽象Aggregation 聚合Association 关联Attribute 属性Cardinality 基数Class 类Cohesion 内聚Component 组件Compos
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中物理教资面试2026经典考题试卷及答案
- 发电厂宣传课件
- 初中地理2026教资面试必练考题试卷及解析
- 初中生物教资面试2026易错题题库及答案
- 做好卧床病人的护理
- 穿刺失败后的护理
- 广东省深圳市南山区2022-2023学年八年级上学期期末道德与法治试题(含答案)
- 发电厂介绍课件
- 非典病毒介绍课件
- 浮沉子课件教学课件
- 2026年江苏省考《申论》真题及答案解析(A卷)
- 工厂液氯泄漏事故应急预案演练脚本
- 统计学基础及应用课件 任务9 相关分析与回归分析
- 2026年川教版(新教材)初中信息科技七年级下册(全册)教学设计(附目录)
- 工程技术人员化学工程工程师考试复习题库(附答案)
- 山西离柳焦煤集团考试试题
- 海南发展控股公司校招面笔试题及答案
- (2026年)尿毒症继发甲状旁腺亢进患者的麻醉管理课件
- 肿瘤中西医结合治疗2025年CSCO指南
- 国企面试流程详解及面试技巧指南
- 卫生院信息安全培训课件
评论
0/150
提交评论