说明“面向对象”和“面向过程”有什么区别
面向过程和面向对象
关注猿学部落,轻松敲代码,轻松学编程,更多课程尽在猿学部路官网www.itbull.net
采用自顶向下、分而治之的方法,将整个程序按功能划分为几个可独立编程的子过程模块,每一子模块完成指定的子任务,主过程通过调用各子过程完来成全部处理工作 。
2.面向对象的程序设计(Object-Oriented Programming)
面向对象的程序设计方法强调直接以现实世界中的物体为中心来思考和认识问题,并按照这些事物的本质特征把它们抽象为类。采用数据抽象和数据隐藏,类之间互相交互,共同构成大型的面向对象基础。
3.面向对象的相关概念
1)类(Class):具有相似属性和行为的一组对象,就称为类。可见,有了类的概念以后,就可以对具有共同特征的事物进行统一描述;
2)对象(Object):类的实例,每个对象都具有属性和方法这两方面的特征。对象的属性描述了对象的状态和特征,对象的方法说明了对象的行为和功能,并且对象的属性值只应由这个对象的方法来读取和修改,两者结合在一起就构成了对象的完整描述。;
3)封装(Encapsulation):封装把对象的属性和方法看成了一个密不可分的整体,从而使对象能够完整地描述并对应于一个具体事物 ;
4)继承(Inheritance):在面向对象的程序设计中,允许在已有类的基础上通过增加新特征而派生出新的类,这称为继承。其原有的类称为基类(base class),而新建立的类称为派生类(derived class);
5)消息(Message):当一个对象需要另外一个对象提供服务时,它向对方发出一个服务请求,而收到请求的对象会响应这个请求并完成指定的服务。这种向对象发出的服务请求就称为消息。所谓消息就是调用一个对象所提供的方法;
6)多态性(Polymorphism):多态性是面向对象的一个重要特征。多态有两种,静态的和动态的。在通过继承而派生出的一系列类中,可能存在一些名称相同,但实现过程和功能不同的方法(Method)。
当程序中的其他部分发出同样的消息时,按照接收消息对象的不同能够自动执行类中相应的方法。其好处是,用户不必知道某个对象所属的类就可以执行多态行为,从而为程序设计带来更大方便。
4.面向对象编程的特点
1)OOP以“对象”或“数据”为中心。由于对象自然地反映了应用领域的模块性,因此具有相对稳定性,可以被用作一个组件去构成更复杂的应用,又由于对象一般封装的是某一实际需求的各种成分,因此,某一对象的改变对整个系统几乎没有影响;
2)引入了“类”(class)的概念。类与类以层次结构组织,属于某个类的对象除具有该类所描述的特性外,还具有层次结构中该类上层所有类描述的全部性质,OOP中称这种机制为继承;
3)OOP方法的模块性与继承性,保证了新的应用程序设计可在原有对象的数据类型和功能的基础上通过重用、扩展和细化来进行,而不必从头做起或复制原有代码,这样,大大减少了重新编写新代码的工作量,同时降低了程序设计过程中出错的可能性,达到了事半功倍的效果。
5.设计了良好的OOP系统具有的特性
1)可维护性:软件在投入使用的过程中,随着运行时间的延长,后期可能就不符合客户的需求了,我们就需要对软件进行修改。后期维护的人员初期可能没有参与到软件的开发中,对软件的结构是不熟悉的。那OOP系统就能保证后期的维护比较方便,比较简单;
2)可扩展性:在软件运行后期我们需要对软件新增一些功能的时候,不需要对软件的架构进行大的更改就能非常方便的增加一些功能;
3)可复用性:我们在这一个项目中使用的一些代码和类,模块可以很容易的拿到另外一个项目中去使用;
4)健壮性:软件要比较稳定,出错的几率比较小。
6.二者比较
1)传统的结构化程序设计方法以过程为中心构造应用程序,数据和处理数据的过程代码是分离的、相互独立的实体,设计出的程序可重用代码少,且当代码量增加时维护数据和代码的一致性困难;
2)面向对象程序设计方法中,对象所具有的封装性和继承性使得代码重用成为可能,并大大减少了程序出错的可能性;
3)面向对象方法吸收了结构化程序设计方法的优点,同时引入了新概念、新机制并建立了比传统方法更高层次的抽象。面向对象内部也包含了面向过程,比如我们在设计类中的一个方法时,我们就会采用面向过程的一些原则,一些思想等等…….
7.一些误区
1)面向对象优于面向过程:面向对象与面向过程没有绝对的优劣之分,只有是否适用之别;
2)C++ = C + 类, C++的编程思想被很大的改变,如果仅仅只是适用类将C封装起来,那不是C++的面向对象的原则;
3)使用面向对象技术一定能构造出更优秀的软件:有人认为面向对象做出来的软件一定是非常优秀的,但是面向对象不慎误用,或者是面向对象编程的思想没有掌握好的话,这样的软件只会比面向过程写出的软件更糟糕而已;
4)学会了C++就学会了面向对象技术,这个我们前面也已经说过,学习C++只是学习面向对象的第一步,后面还需要学习面向对象的一些原理,原则和方法。更是需要自己去实践,对面向对象不断加深理解。
Java语言的特点有哪些
面向对象可以说是Java最重要的特性。Java语言的设计完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。Java支持静态和动态风格的代码继承及重用。单从面向对象的特性来看,Java类似于Small Talk,但其它特性、尤其是适用于分布式计算环境的特性远远超越了Small Talk。 3.分布式 Java包括一个支持HTTP和FTP...
java有什么特性
Java的语言特性有以下几点,如果对编程感兴趣可以来我这看看。一.简单性:Java是纯面向对象语言,语法简单明了,易于掌握。Java使用接口取代了多重继承,并且取消了指针,因为多重继承和指针会使程序变得复杂。Java还会自动地收集内存垃圾,使得内存管理变得更为简单。Java还提供了丰富的类库、API文档以及第...
c++面向对象程序设计三大特点及其目的
继承可以减少代码重用。多态本质就是允许父类的指针指向子类对象的地址 当软件产品在未完成时、未被使用时或者带着各种各样的错误发布时,问题就会出现。另外,用户需求的改变已经成为一个重要问题。多份关于软件实现的报告显示,在软件产品发布和使用之前,需要仔细进行质量评估。
Java语言的特点
如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。 所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到...
举生活中实例说明 面向对象中的抽象原则
大量访问方法意味着相关数据和行为没有集中存放。(15)对包含太多互不沟通的行为的类多加小心。这个问题的另一表现是在你的应用程序中的类的公有接口中创建了很多的get和set函数。 (16)在由同用户界面交互的面向对象模型构成的应用程序中,模型不应该依赖于界面,界面则应当依赖于模型。(17)尽可能地...
java面向对象编程的格式是怎样的啊(比如输出小明的名字,年龄,学号等...
面向对象的好处就是简单,你直接调用方法,完全不需要知道这个方法的具体实现,比如:你要吃满汉全度 面向过程:你要自己学会做满汉全席, 在代码体现中就是你要知道这个方法的实现过程.面向对象:你只要找个会做的厨师就行. 在代码体现中就是你只要知道这个方法名,不需要知道过程 伪代码 \/\/类public class...
怎样学习编程语言,和理解语言;
一。面向对象的程序设计 我们现在使用的比较广泛的语言,基本上都是面向对象的,那我们首先要建立面向对象的概念。这是思想层面的。java中流传着一句话:万物皆对象。它里面主要有两个概念:类和对象。 类是抽象和概念性的东西,是对象的蓝本或模板,是用来描述对象的。而对象却是具体的,它具有特定的...
谁能讲解一下java面向对象中的异常处理
catch的类型是Java语言中定义的或者程序员自己定义的,表示代码抛出异常的类型,异常的变量名表示抛出异常的对象的引用,如果catch捕获并匹配上了该异常,那么就可以直接用这个异常变量名,此时该异常变量名指向所匹配的异常,并且在catch代码块中可以直接引用。这一点非常非常的特殊和重要! Java异常处理的目的是提高程序的...
使用面向对象的概念表示小明去超市买东西,所有买到的东西都放在购物车...
先定义商品接口,然后声明购物车这个类用来保存商品,定义怎样增加商品,定义implements是一个类实现一个商品接口用的关键字,最后定义所购买的商品,然后输出,最后统计结账。
python是什么意思
简介:Python由荷兰数学和计算机科学研究学会的Guido van Rossum于1990 年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新...
鱼吴奥正: “面向对象"和"面向过程"的区别: 用一个例子来解释: java是一门面向对象的语言,那对面向对象和面向过程不是很清楚的请看看下面的内容,说不定对你有帮助: 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步...
金牛区17155529289: 小白提问,C语言中面向过程和面向对象是什么意思,谁能简单的帮我解释清楚 - ?
鱼吴奥正: 面向对象和面向过程是两种不同的编程思维模式或者说是编程方法,而C语言本身是纯面向过程的语言,如果你不了解类和对象,那你最好还是不要问什么是面向对象,因为说了你也理解不了,等你学完了java,你自然就知道什么叫面向对象编程了
金牛区17155529289: 面向对象和面向过程分别是什么意思? - ?
鱼吴奥正: 知乎上看到的一个解释 面向过程: 摇(狗尾巴) 面向对象: 狗.(摇尾巴)
金牛区17155529289: 编程中的面向对象和面向过程,都是什么意思啊? - ?
鱼吴奥正: 面向对象,就是界面信息显示对用户的互动体验,面相过程就是数据从后台到展示的程序数据交互处理
金牛区17155529289: 用例子说明面向对象和面向过程的区别 - ?
鱼吴奥正: 你可以这么理解.我认为没有错误,而且正式面向对象的一种设计理念. 比如面向过程,其实就是解决问题的一个过程. 而面向对象,是指某一个对象,它本身具有很多的功能以及属性,那么他的每一个功能其实现过程就是面向过程的实现,那么就像你说的可以进行这样的拆分,并且还要补充的就是面向对象他除了面向过程的一部分外,还有自己本身所拥有的属性,这样才完整构成了面向对象.
金牛区17155529289: 什么是面向对象对象?什么是面向过程?什么是面向对象? - ?
鱼吴奥正: 面向对象技术是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术.它具有抽象性、封装性、继承性及多态性. 面向对象与面向过程程序设计有如下不同: (1)面向过程程序设计方法采用函数(或过程)来描述对数据的操...
金牛区17155529289: 面向对象和面向过程具体有什么区别? - ?
鱼吴奥正: 面向对象可以理解为搭积木,每个对象就是一个积木,积木的大小和颜色就是对象的属性,积木的作用就是对象的方法,编程的目的就是把积木组合起来面向过程就是按顺序一步一步的去做...
金牛区17155529289: 什么是面向对象和面向过程 - ?
鱼吴奥正: 下面是我本人的理解,比较浅薄. 面向对象: 举个例子,盖一座大楼,你想到的是楼怎么盖,哪里要有柱子,哪里要有梁,哪里楼梯等等(这就是面向对象),至于柱子该怎么建,用什么建,方的圆的,等等,这就是面向过程. 用面向对象思考问题更符合我们人的思考方式. 其实我们人现实生活中都是在面向对象.比如:去饭店吃饭,你只要说明吃什么就可以了,有必要还了解这个菜是怎么做的,是哪里来的,怎么去种这个菜吗? 面向对象也可以说是从宏观方面思考问题,而面向过程可以说是从细节招收思考问题.在面向对象中,也存在面向过程.
金牛区17155529289: 面向对象和面向过程有什么区别??
鱼吴奥正: 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为.通俗来讲是将编程当成一个事物,对外界来说,事物是直接使用的,不用去管它内部的情况. 面向过程是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了.
金牛区17155529289: 怎样理解面向对象和面向过程 - ?
鱼吴奥正: 面向过程 倾向于我们做一件事的流程,先做什么,然后做什么,最后做什么.更接近于机器的实际计算模型. 面向对象(Object-Oriented) 倾向于建立一个对象模型,它能够近似的反映应用领域内的实体之间的关系,其本质是更接近于一种人...