发表于 2023-2-3 12:57:41
编程语言是一组程序和规则,可以帮助程序员提供指令供计算机执行。您几乎可以在任何地方找到面向对象编程 (OOP) 语言,例如移动应用程序和设计软件,而且程序员使用的许多编码语言都是面向对象的。如果您正在寻找计算机领域的职业,了解面向对象语言为何有用以及它们如何工作至关重要。
OOP 原则术语
在进一步了解 OOP 原则之前,先了解一些基本术语:
类:这是对象的功能可以做什么的标准或模型。
对象:类的实例或工作实体。
方法:定义对象在类中的行为,该行为可以应用于该类的所有实例。程序员可以将此称为对象的行为。
功能:指令的组合,实现一个结果,不关联类。
实例:它们类似于对象,您可以用这些术语来思考它们:汽车的蓝图是对类的描述,制造商使用该蓝图制造的汽车是该类的对象。您在同一蓝图中拥有的汽车是该类的一个实例。
状态:表示对象的数据或值。如果汽车是一个对象,那么汽车的型号、年份和颜色就是汽车的状态。
私有:同一个类中的方法可以访问私有数据。
受保护:类和子类中的方法可以访问此数据。
公共:类之外的方法可以访问公共数据。
OOP 的主要原则是什么?
程序员在构建面向对象代码时可以使用的四个主要 OOP 原则都是围绕对象展开的。对象是包含代码(例如过程或方法)和数据(例如特性或属性)的数据结构。在许多 OOP 语言中,对象是可以同时具有可执行代码和值的任何东西,这些值可以通过使用方法进行更改。类的每个实例都是唯一的,但每个实例的状态可以具有相似的值。
您可以将面向对象编程中的对象描述为实际对象。想一想具有独特属性的对象,例如手表。手表是黑色的,由金属制成,并具有特定的重量。但是对象也可以执行功能。手表可以显示时间,也可以通过旋转内部齿轮来移动指针的位置来影响自身。编程对象类似于现实世界的对象,因为它们可以具有功能、属性并遵循一组特定的原则。这些原则包括:
封装
如果您有一个程序,可能会有几个不同的对象相互通信。这是根据程序定义的规则。当每个对象都在类中保持私有状态时,您就可以实现封装。其他对象不能访问这个状态,它们只能发起一个公共函数列表。对象的方法管理状态,其他方法不能操纵状态,除非它有权限。如果另一个对象想与该对象通信,可以使用它的方法。
例如,如果您正在构建一个有一只猫的视频游戏,您可以使用封装将其所有逻辑和操作封装在一个您可以称为“猫”的类中。猫的“状态”有饥饿、情绪和精力等私人变量。它也可以像喵喵一样有私有方法。猫类会在必要时调用该方法,但其他类无法让猫喵喵叫。其他类使用公共方法,例如 play、sleep 和 feed。每种方法都会改变猫的状态,并可能导致使用喵喵方法。
抽象
您可以将抽象视为封装的扩展。OOP 中的程序有时可能非常大,并且单独的对象可以彼此进行大量通信,这使得维护大量代码和进行任何必要的更改变得困难。抽象旨在帮助缓解这个问题。抽象意味着每个对象只能展示其使用的高级机制。这些机制可以隐藏实现的内部细节,只揭示适用于其他对象的操作。
例如,如果您想到一台咖啡机,它的功能就是快速冲泡您喜欢的热饮。但是,要使用它,您需要将咖啡放入机器并按下按钮。这种机制使用起来很简单,而且很少改变。您可以将其视为一组公共方法,另一个类可以在不知道它们如何工作的情况下调用这些方法。
遗产
对象通常可以非常相似并共享一些共同的逻辑,但它们并不完全相同。因此,重用一个对象的公共逻辑并提取独特的逻辑供另一个类使用,实现这一点的一种方法是通过继承。您可以通过从父类派生,形成层次结构来创建子类。子类可以重用父类的所有方法和字段,即公共部分,并实现自己独特的部分。
例如,如果你有一个管理私立和公立教师的程序,以及其他类型的人,如学生,你可以创建一个父类并将其命名为“人”,在这个类下,你可以有两个子类并调用他们是“学生”和“老师”。那么在“teacher”类下,可以多出两个child class,分别叫做“private teacher”和“public teacher”。以这种方式构建你的类可以只添加它的必需品,同时重用父类的公共逻辑。
多态性
现在您了解了继承,可能还有另一个问题。如果你有一个父类和一些子类可以继承,你可以使用一个集合,比如一个包含所有类的混合列表,或者你可能有一个父类实现的方法,但是你想也将其用于子班级。多态性可以解决这个问题。多态性可以为您提供一种使用与其父类相同的类的方法,因此在混合类型时不会造成混淆。但是,子类保持它们自己的方法相同。
任何时候,一个集合(如列表)或一个方法需要父类的一个实例,它具有通用方法的概述,无论您执行哪个子类,OOP 都可以处理对通用方法正确实现的评估。例如,如果您有一个“形状”父类,使用计算曲面方法,还有三个子类,并将它们称为“圆形”、“三角形”和“矩形”,您可以对它们一视同仁。如果这个列表试图计算形状的表面,它可以找到并执行正确的方法。如果元素是三角形,它会调用三角形的计算曲面方法。
流行的 OOP 语言
程序员使用的一些流行的 OOP 语言包括:
Java: Java 流行的一个原因是因为它是移动应用程序开发的官方编程语言之一。程序员将 Java 用作一次编写,随处运行 (WORA) 语言,使其适用于多个应用程序。
Python:程序员可以在许多用例中应用 Python,这使 Python 成为另一个流行的选择。Python 还是一种用于数据科学和机器学习的强大编程语言。
C++: C++ 和 C 编程语言的组合创建了所有计算机操作系统。C++ 是一种快速灵活的语言,具有基本的编程原则。
C#:程序员可以将 C# 的设计与其他编程语言结合使用来创建 Web 和桌面应用程序。
Ruby: Ruby 是一种类似于 Python 的通用语言。程序员在许多平台上使用 Ruby,而且它是开源的。
面向对象的优点和缺点
以下是在编程中使用 OOP 语言的一些优点和缺点:
优点
OOP 语言的优点包括:
可重用性:由于抽象和多态性原则,程序员可以使一个函数多次使用。程序员可以复制继承写入的功能和信息,从而节省时间、降低复杂性并节省空间。
并行开发:程序员可以使用相互独立的部分的基础来开发他们程序的足够部分,并且仍然可以使用编程原则来运行。这使得更大的编程团队更容易使用并发开发。
维护:程序员可以调用和重用更易于维护的代码,因为他们的大部分代码都在一个地方。程序员可以修复一个多态和模块化函数,而无需纠正语言调用函数的许多实例。
安全性: OOP 语言的安全性源于封装原则。其他类和方法无法访问私有数据,OOP 编写的程序更安全。
缺点
OOP 语言的缺点包括:
通常很混乱:理解代码的工作原理很容易丢失,因为 OOP 语言是如此可扩展和可定制。许多 OOP 编程方法不能与其他方法一起使用,使用起来具有挑战性,或者效率低下。
需要更多计划:如果没有提前进行简单的设计,使用 OOP 创建程序会使编程变得困难,因为这些语言是如此可扩展和模块化。程序员可以创建一个可靠的计划来编写比其他范例更高效的程序。 |
|