面向过程和面向对象

面向过程程序设计:

  • 以事件为中心,以功能为导向,分析某个问题的所需要的步骤,实现每个步骤的函数,不断调用函数。
  • 面向过程编程,首先是如何操作数据,在考虑如何组织数据。数据和对数据的操作是分离的。
  • 面向过程程序设计以设计各个功能模块为中心,难于维护。

面向对象程序设计:

对象:对象就是人们研究的任何一个事物,一件物品是一个对象,一个规则,计划,事件也是一个规则。对象具有状态,用数据来描述,还具有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,是数据和操作封装在对象的统一体中。
:具有相同或相似性质的对象的抽象成为类。类的具体化,实例化就是对象。

  • 以数据为中心,然后再去考虑算法。
  • 面向对象技术,是一种以对象为基础,以事件或消息驱动对象运行处理的程序设计技术。
  • 三大特点:
    封装:将具有相同特性的一组对象抽象成一个类,
    继承:子类可以继承父类的特性,并且可以扩展父类的特性,有良好的扩展性和复用性
    多态:接口多种不同的实现方式称为多态。一个同样的操作在不同对象中完成不同的执行结果。
    (封装可以隐藏细节,使代码模块化;继承可以扩展已存在的类,他们的目的都是为了代码的重用;而多态是为了实现接口的重用)
  • 面向对象编程是将问题划分为各个对象,建立对象的目的不是为了完成某个步骤,而是为了描述对象在整个问题中的行为。
  • 面向对象程序设计是以数据为中心来解决问题,数据对于功能而言更加稳定,易于维护。

例如:
一辆汽车的行驶
用面向过程的思想:考虑如何启动汽车,起步,加速,刹车,熄火等一个个操作过程,对应于每一个函数,在主函数中的不断调用,来完成整个过程。在这里思考的是完成这个问题的各个操作步骤,而不关心汽车这个主体。
用面向对象的思想:把汽车作为一个对象,汽车的功能都在对象的属性里,干什么事情调用汽车这个对象即可。

C ,Java ,C++这些语言,他们之间并没有面向对象和面向过程之分。C语言通常说是面向过程的语言,但也可以面向对象,Linux内核代码就是如此。C++和Java通常写面向对象的程序,因为这两个语言来实现面向对象更容易一些,但并不是局限于面向对象,也可以实现面向过程的程序设计。
面向对象虽然好维护,但也不能说他一定优于面向过程,有些领域用面向对象无法实现,比如硬件编程和嵌入式编程这种实时性和效率性要求更高的领域。面向对象的主要领域还是用在大型复杂的软件系统中。




参考:
https://blog.csdn.net/zhangtxxf/article/details/79109922
https://wenku.baidu.com/view/554c08a0b0717fd5360cdcb6.html

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值