一、知识点介绍
1、概念说明
1)面向过程:是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数。
(简而言之,面向过程强调的是功能行为,以函数为最小单位,考虑怎么做。)
2)面向对象:是一种以“对象”为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为。
(简而言之,面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。)
2、优缺点比较
1)面向过程
优点:
流程化使得编程任务明确,在开发之前基本考虑了实现方式和最终结果,具体步骤清楚,便于节点分析。
效率高,面向过程强调代码的短小精悍,善于结合数据结构来开发高效率的程序。
缺点:
需要深入的思考,耗费精力,代码重用性低,扩展能力差,后期维护难度比较大。
2)面向对象
优点:
结构清晰,程序是模块化和结构化,更加符合人类的思维方式;
易扩展,代码重用率高,可继承,可覆盖,可以设计出低耦合的系统;
易维护,系统低耦合的特点有利于减少程序的后期维护工作量。
缺点:
开销大,当要修改对象内部时,对象的属性不允许外部直接存取,所以要增加许多没有其他意义、只负责读或写的行为。这会为编程工作增加负担,增加运行开销,并且使程序显得臃肿。
性能低,由于面向更高的逻辑抽象层,使得面向对象在实现的时候,不得不做出性能上面的牺牲,计算时间和空间存储大小都开销很大。
二、代码实例展示
''' 以下代码使用了面向过程的开发方式。 我们定义了两个函数,一个用于计算矩形的周长,一个用于计算矩形的面积。 然后在程序中调用这些函数来计算并输出矩形的周长和面积。 ''' # 面向过程开发 def calculate_perimeter(length, width): perimeter = 2 * (length + width) return perimeter def calculate_area(length, width): area = length * width return area # 调用函数计算矩形的周长和面积 length = 5 width = 3 perimeter = calculate_perimeter(length, width) area = calculate_area(length, width) print("周长为:", perimeter) print("面积为:", area)
讯享网

图 1 面向过程
讯享网''' 以下代码使用了面向对象的方法进行开发。 我们定义了一个矩形类(Rectangle),其中包含了矩形的长度和宽度属性, 并且定义了两个方法用于计算矩形的周长和面积。 ''' # 面向对象方法 class Rectangle: def __init__(self, length, width): self.length = length self.width = width def calculate_perimeter(self): perimeter = 2 * (self.length + self.width) return perimeter def calculate_area(self): area = self.length * self.width return area # 创建矩形对象 rect = Rectangle(5, 3) # 调用对象的方法计算矩形的周长和面积 perimeter = rect.calculate_perimeter() area = rect.calculate_area() print("周长为:", perimeter) print("面积为:", area)
图 2 面向对象
三、总结
1)在面向过程开发中,程序的设计主要集中在函数的定义和调用上。函数是根据具体的操作逻辑编写的,并且通过传递参数来完成特定的任务。数据和函数是分离的,函数通过参数进行数据的传递和返回结果。
2)在面向对象方法中,程序的设计主要关注对象的创建和方法的调用。我们通过创建一个矩形对象(rect)来表示具体的矩形实例,然后通过调用对象的方法来完成相应的计算任务。对象封装了数据(即矩形的长度和宽度)和对数据的操作(即计算周长和面积的方法),通过方法来访问和操作数据。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/66934.html