📜  珀尔 | OOP 中的类

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

珀尔 | OOP 中的类

在这个现代世界,编程的使用已经达到了最大程度,并在我们生活的每一项工作中都有应用,我们需要使自己适应这种与现实世界的例子直接相关的编程范式。现实世界问题的竞争力和复杂性发生了巨大变化,因此该行业现在需要一些通用方法来应对这些复杂性。面向对象编程语言的概念可以轻松应对这些复杂性,并且是构建任何编程语言的完美方式,使得现实世界的示例变得非常容易解决。面向对象编程(OOP)使用更强调对象而不是过程的方法。 OOP 的概念是关于对象和对象之间的交互的工作。

注意:面向对象的编程旨在在编程中实现继承封装多态等现实世界的实体。 OOP 的主要目的是将数据和对它们进行操作的函数绑定在一起,这样代码的其他部分就不能访问这些数据,除了那个函数。

目的 -

对象是具有某些特征和行为的数据结构类的实例。例如,我们说“Apple”是一个对象。它的特点是:它是一种水果它的颜色是红色。它的行为是:“味道不错”。在 OOP 的概念中,对象的特征由其数据表示,行为由其关联的函数表示。因此,对象是存储数据并通过函数具有接口的实体。

班级 -

类是数据结构的扩展概念。它定义了包含数据的对象的原型蓝图。对象是类的实例。类由数据成员和数据函数组成,它是根据用户要求制作的预定义数据类型,可以通过创建该类的实例来访问和使用。

例子:
考虑一类School 。可能有不同名称和结构的学校,但它们都有一些共同的特征,如学生、教师、教职员工等。所以这里的学校是以教师、学生和家长为数据成员的班级,成员功能可以是calculate_students_marks()、calculate_teachers_salary() 和 Parents_Database()。

数据成员:数据成员是数据变量,成员函数是用于操作这些变量的函数,这些数据成员和成员函数一起定义了类中对象的属性和行为。

定义一个类——

在 Perl 中定义一个类非常容易。在 Perl 中,一个类对应一个包。要定义一个类,我们首先加载并构建一个包。包是用户定义变量和子例程的预包含单元,可以在整个程序中使用。

句法:

package Class_name

创建类和使用对象

Perl 中的类可以使用关键字 package 创建,但要创建对象,则调用构造函数。构造函数在类中定义为方法。

创建一个类的实例
类名和构造函数名可根据用户要求。大多数程序员更喜欢使用“new”作为他们程序的构造函数名称,因为它易于记忆并且比任何其他复杂的构造函数名称更易于使用。

Perl
package student     // This is the class student
sub Student_data    // Constructor to class
{
    my $class = shift;
    my $self = {
                _StudentFirstName => shift;
                _StudentLastName => shift;
               };
                
    print "Student's First Name is $self ->{_StudentFirstName}\n";
    print "Student's Last Name is $self ->{_StudentLastName}\n";
    bless $self, $class;
    return $self;
}


Perl
$Data = Student_data student( "Shikhar", "Mathur");


Perl
use strict;
use warnings;
 
package student;
 
# constructor
sub student_data
{
 
    # shift will take package name 'student'
    # and assign it to variable 'class'
    my $class_name = shift;
    my $self = {
                'StudentFirstName' => shift,
                'StudentLastName' => shift
               };
    # Using bless function
    bless $self, $class_name;
     
    # returning object from constructor
    return $self;
}
 
# Object creating and constructor calling
my $Data = new student_data student("Geeks","forGeeks");
 
# Printing the data
print "$Data->{'StudentFirstName'}\n";
print "$Data->{'StudentLastName'}\n";


在上面的示例代码中,使用了一个名为bless的函数。此函数用于将对象附加到作为参数传递给它的类。

句法:

bless Object_name, Class Name

创建对象
Perl 中的对象是通过使用类中定义的构造函数来实例化的。对象名称可以根据用户的要求是任何变量,但是根据与类的相关性来命名它是常规的。

Perl

$Data = Student_data student( "Shikhar", "Mathur");

例子:

Perl

use strict;
use warnings;
 
package student;
 
# constructor
sub student_data
{
 
    # shift will take package name 'student'
    # and assign it to variable 'class'
    my $class_name = shift;
    my $self = {
                'StudentFirstName' => shift,
                'StudentLastName' => shift
               };
    # Using bless function
    bless $self, $class_name;
     
    # returning object from constructor
    return $self;
}
 
# Object creating and constructor calling
my $Data = new student_data student("Geeks","forGeeks");
 
# Printing the data
print "$Data->{'StudentFirstName'}\n";
print "$Data->{'StudentLastName'}\n";
输出:
Geeks
forGeeks

在面向对象编程中使用类的概念非常重要,因为它完全描述了现实世界的应用程序,并且可以在现实世界的问题中采用。