📜  Perl 中的面向对象编程 (OOP)

📅  最后修改于: 2022-05-13 01:54:46.572000             🧑  作者: Mango

Perl 中的面向对象编程 (OOP)

面向对象编程:顾名思义,面向对象编程或 OOP 是指在编程中使用对象的语言。面向对象编程旨在在编程中实现继承、隐藏、多态等现实世界的实体。 OOP 的主要目的是将数据和对它们进行操作的函数绑定在一起,这样代码的其他部分就不能访问这些数据,除了那个函数。


OOP 概念:

  • 班级
  • 目的
  • 方法
  • 多态性
  • 遗产
  • 封装
  • 抽象

让我们了解面向对象编程语言的不同特征:

  1. 类:类是用户定义的蓝图或原型,从中创建对象。它表示一种类型的所有对象共有的一组属性或方法。一般来说,类声明可以包括这些组件,按顺序:
    1. 类名:名称应以首字母开头(按约定大写)。
    2. 超类(如果有):类的父类(超类)的名称(如果有),前面带有关键字“use”。
    3. 构造函数(如果有的话): Perl 子例程中的构造函数返回一个对象,它是类的一个实例。在 Perl 中,约定是将构造函数命名为“new”。
    4. Body:用大括号 { } 包围的类主体。

  2. 对象:它是面向对象编程的基本单元,代表现实生活中的实体。一个典型的 Perl 程序会创建许多对象,如您所知,这些对象通过调用方法进行交互。一个对象包括:
    1. 状态:它由对象的属性表示。它还反映了对象的属性。
    2. 行为:它由对象的方法表示。它还反映了一个对象对其他对象的响应。
    3. 身份:它为一个对象赋予一个唯一的名称,并使一个对象能够与其他对象交互。

    对象示例:狗

    空白图 - 第 1 页 (5)

  3. 方法:方法是执行某些特定任务并将结果返回给调用者的语句的集合。方法可以执行某些特定任务而不返回任何内容。方法可以节省时间并帮助我们重用代码而无需重新输入代码。

  4. 多态性:多态性是指 OOP 编程语言有效区分同名实体的能力。这是由 Perl 在这些实体的签名和声明的帮助下完成的。

    Perl 中的多态性主要有两种类型:

    • Perl 中的重载
    • Perl 中的覆盖

  5. 继承:继承是OOP(面向对象编程)的重要支柱。这是 perl 中允许一个类继承另一个类的特性(字段和方法)的机制。
    重要术语:
    • 超类:其特征被继承的类称为超类(或基类或父类)。
    • 子类:继承另一个类的类称为子类(或派生类、扩展类或子类)。除了超类的字段和方法外,子类还可以添加自己的字段和方法。
    • 可重用性:继承支持“可重用性”的概念,即当我们想要创建一个新类并且已经有一个类包含我们想要的一些代码时,我们可以从现有类中派生出我们的新类。通过这样做,我们正在重用现有类的字段和方法。

    一个类可以通过使用包在 perl 中创建,并且可以通过使用 'use' 关键字来继承。
    句法:

    use package_name
    

  6. 封装:封装被定义为将数据封装在一个单元中。它是将代码和它操作的数据绑定在一起的机制。考虑封装的另一种方式是,它是一个保护屏障,可防止数据被该屏蔽之外的代码访问。
    • 从技术上讲,在封装中,一个类的变量或数据对任何其他类都是隐藏的,只能通过声明它们的类的任何成员函数来访问。
    • 与封装一样,一个类中的数据对其他类是隐藏的,因此也称为数据隐藏
    • 封装可以通过以下方式实现:将类中的所有变量声明为私有,并在类中编写公共方法来设置和获取变量的值。

    封装

  7. 抽象:数据抽象是仅向用户显示基本细节的属性。琐碎或非必要的单元不会显示给用户。例如:汽车被视为一辆汽车,而不是它的单个组件。

    数据抽象也可以定义为仅识别对象所需特征而忽略不相关细节的过程。对象的属性和行为将其与其他类似类型的对象区分开来,并且还有助于对对象进行分类/分组。

    考虑一个男人开车的真实例子。该人只知道踩油门会增加汽车的速度或踩刹车会使汽车停下来,但他不知道踩油门时速度实际上是如何增加的,他不了解汽车的内部机构或加速器、刹车等在车内的实施。这就是抽象。