1、指令式编程
计算机编程起源于汇编语言和机器语言,早期的这些语言被叫做指令式编程范式(所谓编程范式就是程序设计的方法论)。程序员直接操作计算机的指令来完成任务,这种编程方式非常接近硬件。早期的代码比较少,逻辑相对比较简单,所以基本使用指令式编程就能满足需求。
2、面向过程编程
随便应用越来越复杂和要求越来越高,并随着高级编程语言(如Fortran和COBOL)的出现,面向过程编程逐渐兴起。程序员将任务分解为一系列的过程或函数,按照顺序执行这些过程来完成任务。
到70年度,C语言的出现进一步推动了面向过程编程的发展,C语言支持函数和结构化编程,使得程序设计更加模块化和可维护。
3. 面向对象编程:
在程序员使用面向过程编程进行编程的同时,伟大的程序员在探索更优的编程道路上寻找到了更优的编程方法,那就是面向对象编程。在需要设计很多代码,很多函数,很多功能的应用中,面向对象编程无疑给程序员们打开了一个新的编程世界。
不过面向对象编程也不是一下子就出来的,也是随着计算机科学的发展和编程需求的变化和前辈们一步步积累的经验成果:
-
1960-1970年代:面向对象编程的思想开始萌芽,Simula语言被认为是第一个面向对象编程语言,它引入了类和对象的概念。
-
1980年代:Smalltalk等面向对象编程语言的出现进一步推动了面向对象编程的发展。面向对象编程强调数据和操作的封装,继承和多态等概念。
-
1990年代:Java和C++等面向对象编程语言的流行使得面向对象编程成为主流范式。面向对象编程被广泛应用于软件开发中,提高了代码的可重用性和可维护性。
面向对象编程(Object-Oriented Programming,OOP)是一种常见的编程范式,它将程序中的数据和操作数据的方法封装在一起,以对象为中心来组织代码。在面向对象编程中,数据被视为对象,对象之间可以相互交互,通过消息传递来实现数据处理和功能调用。
面向对象编程的核心概念:
-
类(Class):
- 类是对象的模板,定义了对象的属性(成员变量)和方法(成员函数)。
- 类可以看作是一种数据类型,用于创建对象。
- 我们可以理解类就是将有共同特征(静态特征和动态特征)的对象的共同特征抽取出来之后得到的一个抽象概念。
-
对象(Object):
-
对象是类的实例,具体化了类的属性和方法。
-
类是对象的蓝图(模板),有了类才能够创建出这种类型的对象。
-
对象是可以接收消息的实体,面向对象编程就是通过给对象发消息达到解决问题的目标。
-
对象 = 数据 + 函数(方法):对象将数据和操作数据的函数从逻辑上变成了一个整体。
-
每个对象都有自己的状态(属性值)和行为(方法)。
-
-
封装(Encapsulation):封装是将数据和操作数据的方法捆绑在一起,隐藏了对象的内部实现细节,只暴露必要的接口给外部使用。
-
继承(Inheritance):继承允许一个类(子类)继承另一个类(父类)的属性和方法,子类可以重用父类的代码并添加自己的特定功能。
-
多态(Polymorphism):多态性允许不同类的对象对同一消息做出响应,即不同对象可以有相同的方法名,但具体的实现方式不同。
面向对象编程步骤:
1、定义类:
- 数据抽象:找到和对象相关的静态特征(属性)
- 行为抽象:找到和对象相关的动态特征(方法)
2、找对象
3、发消息
示例:
# 定义一个简单的类
class Dog:def __init__(self, name):self.name = namedef bark(self):print(f"{self.name} is barking!")# 创建对象
dog1 = Dog("Buddy")
dog2 = Dog("Max")# 调用对象的方法
dog1.bark() # 输出: Buddy is barking!
dog2.bark() # 输出: Max is barking!
面向对象编程是个很重要的编程范式。尤其对于构建复杂的软件系统,通过模块化和抽象化的方式来解决问题。可以更好地组织和管理代码,提高代码的可复用性、可维护性和可扩展性。