什么是面向对象编程(OOP)?

什么是面向对象编程(OOP)?

面向对象编程,通常缩写为 OOP,是一种流行的编程范式。它被许多软件应用程序/技术公司使用,并得到各种编程语言(例如,C++、Python、Java)的支持。在本文中,我们将探讨 OOP 是什么、它的支柱以及使用它的原因。

Photo by 福蒂斯·福托普洛斯 on 不飞溅

什么是面向对象?

OOP 是使用类和对象的软件实现。

  • 课程 :这些用作对象的示意图。它们定义了属性(称为 属性 )和功能(称为 方法 ) 我们要实现。
  • 对象 : 这些是类的个别实例。定义类后,我们根据类实例化一个对象。该对象将具有类中定义的所有属性和方法。

通过使用类和对象组织代码,我们提高了可重用性,因为一旦定义了一个类,我们就可以继续重用该类来创建尽可能多的对象实例。我们可以将类和对象视为蓝图和建筑物——一旦我们有了蓝图,我们就可以重用它来建造许多建筑物。

OOP 有四个核心支柱:

  1. 封装
  2. 抽象
  3. 遗产
  4. 多态性

这些支柱具有许多优势和所需的属性,这有助于为什么使用 OOP。注意:虽然 OOP 有这些支柱,但这些概念比 OOP 更广泛(即,它们在编程领域更普遍地使用/可以在其他编程范式中找到)。

封装

这是指代码是自包含的。对于 OOP,这意味着所有必要的属性和功能都在对象中定义。参考我们的蓝图类比,这是说蓝图具有建造建筑物所需的所有细节——我们不必在其他地方寻找或搜索。

这很有用,因为它使代码组织化和模块化。特性和功能可以捆绑在对象中,这些对象可以作为更大程序的构建块。当某些东西中断或需要扩展功能时,只需要触及负责它的类。此外,对于大型编码项目,新开发人员可以优先学习与其功能最相关的类,让他们移动得更快。

抽象

这指的是只提供必要的信息并将其余信息隐藏起来。对于 OOP,这意味着当使用类创建对象时,用户只能访问必要的属性和方法。这很有用的原因是因为它允许将实现代码和接口代码分开。实现代码用于构建功能并包含逻辑,而用于接口的代码是用户如何使用它(几乎就像将所有逻辑捆绑在一起的包装器)。分离很重要,因为它允许对工作流进行组织和结构化——而不是完全实现所有内容,您可以将其分解为各个部分/步骤(可以隐藏),然后有一个最终组件将其捆绑在一起(可以是裸露)。回到蓝图的类比,蓝图只会包含必要的细节,例如材料、尺寸和组装说明,但不会包含无关信息,例如最终计算的推导(因为这些与构建无关) )。

抽象有助于简化代码。对于使用该类的人来说,他们不必担心所有的内部机制。只要程序接受预期的输入并提供预期的输出,知道如何并不重要。这可以加快开发和构建新功能的速度。例如,当使用 Python 的 random 库时,它提供了生成随机数的函数,如果它执行预期的行为,它如何生成随机数并不重要(从实际的实现意义上)。

对于类的开发人员,抽象可以允许在不破坏下游使用的情况下进行更改。可以在接口保持不变的情况下更改或更新类的内部机制——因此,无需更改使用该类的所有实例即可对代码进行改进。例如,如果开发人员找到了更高效的算法,他们可以更新代码,同时保留函数的使用方式;这样,该类具有更好的性能,并且该类的所有先前用法仍然有效(尽管内部发生了变化)。此外,未来的用户将继续以相同的方式使用该课程。

遗产

这是指能够使用现有的类来创建新的类。在蓝图的类比中,它意味着我们的蓝图可以用来制作另一个蓝图(无论是原始蓝图的修改版本,例如建筑物的颜色变化,还是原始蓝图的扩展,例如添加新楼层)。

继承对于使代码可重用和模块化非常有用。新对象可以从现有类继承并采用所有先前定义的属性和方法。这很棒,因为可以重用以前建立的代码。此外,这种在类之间继承的能力有助于带来模块化代码设计,其中存在用于使子类/子类具有附加功能的父/基类。例如,可能存在一个通用的建筑蓝图,其中包含楼层数、材料和颜色等基本信息。然后,对于特定的风格(如现代、奢华、哥特式、维多利亚式等),我们可以继承通用蓝图并添加额外的组件。

多态性

这是指能够跨不同的类/对象使用相同的接口。这有效地意味着对象可以使用相同的命名约定来执行类似的操作,从而保持用法相似。这在与继承配对时非常有用,因为可以从父类形成新类,然后可以更新方法。从蓝图的类比,想象有一个部分描述了如何连接楼层,称为“楼层连接”——通过多态性,两个不同的蓝图都可以有一个描述不同平面图的“楼层连接”部分(例如,一个描述楼梯,另一个描述自动扶梯) .

多态性很有用,因为它使界面在相似但不同的对象之间保持相同——这可以使开发人员更容易,因为它减少了学习新界面的认知负担。例如,Python 中的 len() 函数可以提供字符串中的字符数、列表中的元素数以及字典中键值对的数量,尽管有字符串、列表和字典是不同的数据类型。在底层,len() 的实现方式对于每种数据类型略有不同,但使用它的接口在它们之间是相同的。

结论

OOP 是一种利用类和对象来组织代码的编程范式。类包含定义关键属性和功能的属性和方法。类充当对象的蓝图,对象是类的实例。 OOP 可以帮助使代码模块化、更易于使用/更新和可重用。 OOP 的四个原则是封装(自包含代码)、抽象(隐藏代码,以有效地分离实现和接口)、继承(通过使用类来制作类)和多态性(在不同类之间具有相同的命名约定/接口) .

有关演示 OOP 及其原则的 Python 示例,请查看这篇文章:面向对象编程 (OOP) 的 Python 示例

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/18596/45130609

posted @ 2022-09-06 09:45  哈哈哈来了啊啊啊  阅读(1480)  评论(0编辑  收藏  举报