一文带你搞懂什么是“面向过程”与“面向对象”

目录

1. “面向过程”与“面向对象”的编程语言

2. 面向过程程序设计有什么特性?(建议以C语言为例来思考)

3. 面向对象程序设计有什么特性(建议以Java语言为例来思考)

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

5. 简要介绍嵌入式常用的C语言与Python

5.1 C语言

5.2 Python


1. “面向过程”与“面向对象”的编程语言

面向过程的编程语言:面向过程(Procedural Programming)的意思就是在编写代码的时候,要解决的问题被看作是一个个要完成的任务,然后使用编程语言中的函数完成这些任务,解决问题的关键点是使用函数。主要有C语言、Fortran语言(Fortran语言主要用于编写与数值计算有关的程序,广泛应用于科学和工程计算领域。)

面向对象的编程语言:面向对象程序设计(Object Oriented Programming,OOP)的实质是选用一种面向对象程序设计语言(OOPL),采用对象、类及其相关概念所进行的程序设计。主要有Smalltalk、Eiffel、C++JavaPHP等。

2. 面向过程程序设计有什么特性?(建议以C语言为例来思考)

(1)程序由函数或子程序组成:程序由许多函数或子程序组成,这些函数或子程序负责完成特定任务,将复杂的问题拆解为多个小问题,以便更容易地解决。

(2)将函数或子程序组织为模块:模块是一组函数或子程序的集合,采用模块化的设计思想能够提高程序的可维护性和可复用性。

(3)程序执行按照函数或子程序的顺序进行:面向过程程序设计采用顺序执行的方式,即程序从上至下依次执行。

(4)全局变量和局部变量:面向过程程序设计中,程序可以定义全局变量和局部变量。全局变量在程序的任何地方都可以使用,而局部变量只在定义它们的函数或子程序内部可以使用。

(5)不支持面向对象的概念:面向过程程序设计不支持面向对象编程中的类、对象、继承等概念。

3. 面向对象程序设计有什么特性(建议以Java语言为例来思考)

(1)封装(Encapsulation):使得对象的内部机制对外不可见,在程序中对数据和行为进行封装,把相关的信息组织在一个单元内部,只将对外开放的接口暴露给外界。

(2)继承(Inheritance):通过继承机制实现数据和行为的共享,并在此基础上进行扩展。子类继承父类的属性和方法,通过封装或者重写父类方法,实现自己的特殊需求。

(3)多态(Polymorphism):同一类型的对象在不同情况下会有不同的表现形式。通过方法重载、方法覆盖等机制实现多态性。不同的子类可以通过继承反覆盖父类方法的属性和方法,使得同一个方法能够被不同的对象、不同的类调用,达到多态的效果。

(4)抽象(Abstraction):通过抽象模型来表示现实世界的实体和事物,从而更好地实现复杂系统的分析和设计。通过接口、抽象类等方式,将对象的行为和属性抽象出来,以便更灵活地进行实现和拓展。

以上特性可以帮助程序员更好的实现代码复用、维护和扩展。通过严格的封装、继承和多态性的应用,使得程序结构清晰,代码重用性高,耦合度低,更好地满足了面向对象程序设计的基本原则

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

面向过程(Procedural Programming)和面向对象(Object-Oriented Programming,简称 OOP)是两种不同的程序设计方式。以下是两者的主要区别:

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

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

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

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

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

5. 简要介绍嵌入式常用的C语言与Python

5.1 C语言

(1)C语言是一种面向过程的程序设计语言,它强调的是程序的执行过程和实现功能,是一种具有结构化编程思想的高级语言。

(2)面向过程的程序设计语言主要关注程序执行的过程和如何设计和组织代码来完成特定的任务。在这种编程范式下,程序是由一系列的函数或者过程组成,通过调用这些函数或过程来实现特定的功能。

(3)相对于面向对象编程语言(如Java、C++等),C语言比较轻量级,代码简洁明了,执行效率高,尤其在一些嵌入式系统的开发中,C语言可以发挥出它高效率、底层控制和精简代码的特性,因此在嵌入式领域有着广泛的应用

5.2 Python

(1)Python既可以面向对象编程,也可以面向过程编程。

(2)Python是一种多范式语言,它不仅支持面向对象编程范式,在Python中定义类、对象、方法、属性等都非常容易。Python还支持面向过程编程范式,也即通过函数调用实现程序逻辑。从这个角度看,Python语言既支持面向对象编程(OOP),也支持面向过程编程(POP)。

(3)在Python中,可以通过定义函数或方法来实现面向过程编程,也可以使用类和对象实现面向对象编程,或者将这两者结合使用。Python的设计理念之一就是“自由”,因此Python不会限制你使用哪种编程范式,而是允许你在需要时使用适当的编程范式。

码字不易,希望喜欢的小伙伴别忘了点赞+收藏+关注,你们的肯定就是我创作的动力。

欢迎大家积极交流,本文未经允许谢绝转载!!!

猜你喜欢

转载自blog.csdn.net/weixin_62261692/article/details/130284983