📜  珀尔 | OOP 中的对象

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

珀尔 | OOP 中的对象

Perl 是一种面向对象的、动态的和基于解释器的编程语言。在面向对象编程中,我们有三个主要方面,即对象、类和方法。对象是一种数据类型,可以专门称为它所属类的实例。它可以是不同数据类型的数据变量的集合,也可以是不同数据结构的集合。方法是作用于类的这些对象的函数。以下是一个基本示例,可以更好地理解如何在 Perl 中使用对象:

首先,我们需要定义类。在 Perl 中,它是通过构建类的包来完成的。包是一个封装的实体,它具有相关类的所有数据成员和方法。

package Employee;

这里,Employee 是类名。

第二个任务,是创建包的一个实例(即对象)。为此,我们需要一个构造函数。构造函数是 Perl 中的子例程,通常命名为'new' 。但是,名称是用户定义的,因此不限于“新”。

package Employee;
  
# Constructor with name new
sub new 
{
    my $class = shift;
    my $self = {
                  _serialNum => shift,
                  _firstName => shift,
                  _lastName  => shift,
              };
      
    bless $self, $class;
    return $self;
}

在构造函数中,我们定义了一个简单的哈希引用$self 来设计我们的对象。在这里,该对象将具有 Employee 的三个值 serialNum、firstName 和 lastName,这意味着与此相关的每个员工都将拥有自己的一组序列号、firstname 和 lastname。 my关键字是一个访问说明符,它将 $class 和 $self 本地化到封闭的块内。 shift关键字从默认数组“@_”中获取包名,并将其传递给 bless函数。
bless函数用于返回最终成为对象的引用。
最后,构造函数最终将返回 Employee(here) 类的实例。

最后,主要部分是如何初始化一个对象。可以通过以下方式完成:

$object = new Employee(1, "Geeks", "forGeeks");

这里, $object是一个标量变量,它是对构造函数中定义的散列的引用。

以下是在 OOP 中创建和实现对象的示例程序:

use strict;
use warnings;
  
# class with the name Employee
package Employee;
  
# constructor with the name new
sub new 
{            
    # shift will take package name 
    # and assign it to variable 'class'
    my $class = shift;    
      
    # defining the hash reference
    my $self = {                         
                _serialNum => shift,
                _firstName => shift,
                _lastName => shift,
               };
      
    # Attaching object with class
    bless $self, $class;
      
    # returning the instance of class Employee
    return $self;                         
}
  
# Object creation of the class
my $object = new Employee(1, "Geeks", "forGeeks");
  
# object here is a hash to a reference
print("$object->{_firstName} \n");             
print("$object->{_serialNum} \n");    
输出:
Geeks 
1

Perl 中的对象的工作方式与其他语言(如 C++、 Java等)相同。上面的程序显示了 Perl 中对象的工作方式、它的创建和在类中的使用。