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

本文对比了面向过程和面向对象编程的优缺点,指出面向过程在性能上有优势但不易维护,面向对象利于维护和扩展,主要区别在于抽象方式、数据处理、继承和程序结构。
摘要由CSDN通过智能技术生成

"面向过程"与"面向对象"的两大类语言

        面向过程(Procedural Programming)和面向对象(Object-Oriented Programming,简          称 OOP)是两种不同的程序设计方式。

  • 面向过程的语言主要有:C语言Fortran语言

  • 面向对象主要有:Smalltalk、Eiffel、C++、JavaPHP

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

网上搜的大部分说法

  • 面向过程 :面向过程性能比面向对象高。 因为类调用时需要实例化,开销比较大,较消耗资
    源,
    所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix 等⼀般采⽤⾯向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。

  • 面向对象 :面向对象易维护、易复用、易扩展。 因为面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,⾯向对象性能比面向过程低。

这个并不是根本原因,⾯向过程也需要分配内存,计算内存偏移量,Java 性能差的主要原因并不是 因为它是⾯向对象语⾔,⽽是 Java 是半编译语⾔,最终的执⾏代码并不是可以直接被 CPU 执⾏的 ⼆进制机械码。⽽⾯向过程语⾔⼤多都是直接编译成机械码在电脑上执⾏,并且其它⼀些⾯向过程的脚本语⾔性能也并不⼀定⽐ Java 好。

  • 抽象的不同方式: 面向过程抽象的方式是把任务进行分解,然后像流水线一样串联起来,每个函数或者过程负责完成自己的一部分任务,形成一个线性的结构;而面向对象则通过把实体和行为封装在一起来实现抽象,通过类和对象的方式来描述现实世界中的事物。

  • 对数据的处理方式: 面向过程语言通常使用全局变量或者指针,通过传统参数的方式来处理据,而面向对象则通过封装的机制来保护数据并控制访问,使用对象的属性或者方法来完成对数据的处理。

  • 实现继承的方式: 面向过程程序设计中通常使用一个函数或者过程来实现代码的复用,而没有显式的继承概念;而面向对象语言则通过继承机制来实现代码的复用,子类可以继承父类的属性和方法,并在此基础上进行扩展和修改。

  • 程序结构的不同: 面向过程程序设计语言的程序结构往往是线性的,通过函数之间的调用实现流程控制。而面向对象的程序结构则是由对象组成的,每个对象之间可以进行交互和通信,程序控制的流程更加灵活。

总的来说,面向过程强调算法的实现方式,把任务进行分解,完成任务的过程是固定的;而面向对象的设计则更加注重对象和行为的抽象,强调对象的互动和通信,在面对复杂系统和需求变化时更加灵活。

GitHub上对此话题的讨论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-有风无风皆自由-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值