面向对象程序设计(OOP)的理解

1、面向对象理解

        面向对象程序设计主要是把事物对象化,包括其属性和行为(比如类的属性和方法),降低代码耦合,提高复用性。

        面向对象编程更贴近实际生活的思想。总体来说面向对象的底层还是面向过程,面向过程抽象成类,然后封装,方便使用就是面向对象(万物皆对象)。再比如汽车发动机的就是一个对象。我们不需要知道发动机怎么工作的,我们只需要知道加油,它就会输出动力。汽车轮子等其他都是一个对象,这些对象拼起来就是一个汽车。

        通俗点讲就是我们用程序处理一个问题的时候,我们不能想着怎么快速解决这个问题。应该先对这个问题进行抽象化,抽象成一个对象。而这个对象可以是问题的描述,也可以是问题的解。

        比如我们A、B两个数字求和,我们可以先拿A,再拿B,再相加,但是这是面向过程编程。可以对这个问题进行抽象,这个问题就是拿到两个数字,然后求和,那么可以理解为有一个对象,它有两个属性,一个求和行为。那么是不是所有数字的求和都能被这个对象解决了。我们只用告诉这个对象我有两个数字,然后我就拿到了结果,具体它怎么做的我们不关心,这是不是封装。当然这个形容太简单了,但是实际上java就是这么做的,可以看一下BigDecimal类,关于金融计算这个类用的就多了。

面向对象语言的基本特征:

  • 万物皆对象
  • 程序是对象的集合,它们通过发送消息来告知彼此所要做的
  • 每个对象都拥有其类型(每个对象都是某个类class的一个实例对象instance)
  • 某一特定类型的所有对象都可以接受同样的消息

2、面向过程和面向对象对比

        面向过程(步骤化)就是分析出实现需求所需要的步骤通过函数一步一步实现这些步骤,接着依次调用即可。

        面向对象(行为化)面向对象是把整个需求按照特点、功能划分,将这些存在共性的部分封装成对象,创建了对象不是为了完成某一个步骤,而是描述某个事物在解决问题的步骤中的行为。或者将繁琐的步骤,通过行为、功能,模块化,这就是面向对象

3、面向过程和面向对象的优缺点:

面向过程

  • 优点:性能上它是优于面向对象的,因为类在调用的时候需要实例化,开销过大。
  • 缺点:不易维护、复用、扩展
  • 用途:单片机、嵌入式开发、Linux/Unix等对性能要求较高的地方

面向对象

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

低耦合,简单的理解就是说,模块与模块之间尽可能的独立,两者之间的关系尽可能简单,尽量使其独立的完成成一些子功能,这避免了牵一发而动全身的问题。这一部分我们会在面向对象学习结束后进行系统的整理和总结。

只通过教科书后的例题是无法体会到面向过程所存在的问题的,在一些小例程中,面向过程感觉反而会更加的简单,但是一旦面临较大的项目,我们需要编写N个功能相似的函数,函数越来越多,代码量越来越多,Bug之路也就此开始了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值