面向过程面向对象和面向过程的区别和联系

面向过程  时间:2021-08-30  阅读:()

说明“面向对象”和“面向过程”有什么区别

1.面向过程(结构化程序设计) 采用自顶向下、分而治之的方法,将整个程序按功能划分为几个可独立编程的子过程模块,每一子模块完成指定的子任务,主过程通过调用各子过程完来成全部处理工作 。

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)的概念。

类与类以层次结32313133353236313431303231363533e78988e69d8331333365636133构组织,属于某个类的对象除具有该类所描述的特性外,还具有层次结构中该类上层所有类描述的全部性质,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++只是学习面向对象的第一步,后面还需要学习面向对象的一些原理,原则和方法。

更是需要自己去实践,对面向对象不断加深理解。

什么叫面向对象?什么叫面向过程?各有什么特点?

其实吧。







面向对象和面向过程是相对立的两个话题,,可以这样子理解,,,

你想做一件事情,假设可以有a、b,c三种方法,面向过程就是你几乎就是用a方法,,,

而面向对象呢,,,就是不管你用什么方法,,实现最后的功能就行,,,,

希望你能理解。



什么是面向过程的程序设计?

结构化程序的概念首先是从以往编程过程中无限制地使用转移语句而提出的。

转移语句可以使程序的控制流程强制性的转向程序的任一处,在传统流程图中,就是用上节我们提到的"很随意"的流程线来描述这种转移功能。

如果一个程序中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无章,这样的程序是令人难以理解和接受的,并且容易出错。

尤其是在实际软件产品的开发中,更多的追求软件的可读性和可修改性,象这种结构和风格的程序是不允许出现的。

比如:C,FORTRAN,PASCAL等等 结构化程序设计方法主要由以下三种逻辑结构组成: 1)顺序结构:顺序结构是一种线性、有序的结构,它依次执行各语句模块。

2)循环结构:循环结构是重复执行一个或几个模块,直到满足某一条件为止。

3)选择结构:选择结构是根据条件成立与否选择程序执行的通路。

**采用结构化程序设计方法,程序结构清晰,易于阅读、测试、排错和修改。

由于每个模块执行单一功能,模块间联系较少,使程序编制比过去更简单,程序更可靠,而且增加了可维护性,每个模块可以独立编制、测试。

** 面向对象程序语言中支持的对象具有三个明显得特征: 封装、继承、多态;而Javascript在类别和副本上并没有明显地分界。

事实上,Javascript语言中所有的变量数据类型在JS中都是对象。

JS总共支持4种对象:内置对象、自定义对象、浏览器程序对象和ActiveX对象。

return this只是返回该对象,以便别处引用,但并不是多出一个对象。

所以,面向过程的程序设计中:程序=算法+数据结构 数据结构和算法相分离的,所以,系统庞大后,它的控制、移植、重用就成了问题。

而在面向对象的程序设计中: 对象=数据结构+算法 程序=对象+对象+..... 所以克服了面向过程的设计中存在的问题。

面向对象和面向过程的区别和联系

呵呵,这种东西真不好说 面向过程的编程应该关注的是如何使用函数去实现既定的功能。

面向对象的编程,是关注如何把相关的功能,包括函数和数据有组织地捆绑到一个对象身上。

这也是类的概念提出的目的。

实际实现一个对象的过程中,就包含了很多面向过程的方法。





唉。



有点只可意会,不可言传的味道了。



还是看几个C和C++的程序吧,可能会有帮助的

RackNerd:便宜vps补货/1核/768M内存/12G SSD/2T流量/1G带宽,可选机房圣何塞/芝加哥/达拉斯/亚特拉大/荷兰/$9.49/年

RackNerd今天补货了3款便宜vps,最便宜的仅$9.49/年, 硬盘是SSD RAID-10 Storage,共享G口带宽,最低配给的流量也有2T,注意,这3款补货的便宜vps是intel平台。官方网站便宜VPS套餐机型均为KVM虚拟,SolusVM Control Panel ,硬盘是SSD RAID-10 Storage,共享G口带宽,大流量。CPU:1核心内存:768 MB硬盘:12 ...

飞讯云E5-2678V3 64GB,湖北十堰100G高防物理机330元/月

飞讯云官网“飞讯云”是湖北飞讯网络有限公司旗下的云计算服务品牌,专注为个人开发者用户、中小型、大型企业用户提供一站式核心网络云端部署服务,促使用户云端部署化简为零,轻松快捷运用云计算。飞讯云是国内为数不多具有ISP/IDC双资质的专业云计算服务商,同时持有系统软件著作权证书、CNNIC地址分配联盟成员证书,通过了ISO27001信息安全管理体系国际认证、ISO9001质量保证体系国际认证。 《中华...

6元虚拟主机是否值得购买

6元虚拟主机是否值得购买?近期各商家都纷纷推出了优质便宜的虚拟主机产品,其中不少6元的虚拟主机,这种主机是否值得购买,下面我们一起来看看。1、百度云6元体验三个月(活动时间有限抓紧体验)体验地址:https://cloud.baidu.com/campaign/experience/index.html?from=bchPromotion20182、Ucloud 10元云主机体验地址:https:...

面向过程为你推荐
string转intjava里,如何把String字符串转换成int[]数组?阈值电压MOS管的过驱动电压及阈值电压是多少?安卓开发环境搭建最新电脑安卓开发环境的搭建方法?方便快捷请问普通中国人选择什么交通方式方便快捷安全java教程pdf求Java程序设计教程实验手册(翻译版) PDF版背投广告搜狐的广告类型有哪些?报价多少?无线存储无线摄像头里的远程存储和本地存储是怎么回事?ldap统一用户认证介绍NIPS是什么认证?wps表格数据恢复WPS表格如果变成这样怎么恢复公司注册如何办理怎么才能注册公司?
美国和欧洲vps 广东vps 域名服务器是什么 wordpress主机 唯品秀 踢楼 BWH evssl证书 天猫双十一抢红包 北京双线机房 阿里校园 爱奇艺vip免费试用7天 网通服务器托管 免费cdn 台湾谷歌 如何安装服务器系统 闪讯官网 web服务器搭建 阿里云免费邮箱 阿里云邮箱登陆 更多