面向过程的编程思想
面向过程的编程思想, 核心思想是"过程"二字。自上而下顺序执行,逐步求精;其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。
就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象的编程思想
面向对象的编程思想, 核心思想是"对象"二字。 把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。
是把构成问题的事务分解成各个对象,每个对象都有自己独立的属性和行为, 对象可以将整个问题事务进行分工, 不同的对象做不同的事情, 这种面向对象的编程思想由于更加贴近实际生活, 所以被计算机语言广泛应用。
面向过程与面向对象的优缺点
面向过程:
优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
缺点: 没有面向对象易维护、易复用、易扩展
面向对象:
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护
缺点: 性能比面向过程低
面向对象的基本特征(三大特性)
面向对象编程(OOP)的3个基本特征是:封装、继承、多态
- 封装:将属性和方法(数据和功能)封装在一起;
- 继承:继承是指这样一种能力:它可以使用现有类的功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
- 多态:允许让父类的指针分别指向不同的子类, 调用不同子类的同一个方法, 会有不同的执行效果
面向对象与面向过程示例
如果将面向过程理解为"狗吃屎"的话, 那么就可以将面向对象理解为"吃屎狗"。
面向过程 : 小狗饿了, 执行吃屎这个动作, 如果有多条狗, 我们需要一步步的先定义出多条狗, 然后再执行吃屎这个动作, 导致代码很繁琐(注重过程)
面向对象 : 小狗是一个对象, 执行吃屎这个方法。如果有多条狗, 那我们直接可以通过狗类, 来创建小狗这个对象, 最后执行吃屎这个方法。 (不注重过程, 注重对象)