Perl 教程 之 Perl 面向对象 3
Perl 面向对象
Perl 中有两种不同地面向对象编程的实现:
一是基于匿名哈希表的方式,每个对象实例的实质就是一个指向匿名哈希表的引用。在这个匿名哈希表中,存储了所有的实例属性。
二是基于数组的方式,在定义一个类的时候,我们将为每一个实例属性创建一个数组,而每一个对象实例的实质就是一个指向这些数组中某一行索引的引用。在这些数组中,存储着所有的实例属性。
面向对象基础概念
面向对象有很多基础概念,这里我们接收三个:对象、类和方法。
对象:对象是对类中数据项的引用。.
类:类是个Perl包,其中含提供对象方法的类。
方法:方法是个Perl子程序,类名是其第一个参数。
Perl 提供了 bless() 函数,bless 是用来构造对象的, 通过 bless 把一个引用和这个类名相关联,返回这个引用就构造出一个对象。
创建和使用对象
创建一个类的实例 (对象) 我们需要定义一个构造函数,大多数程序使用类名作为构造函数,Perl 中可以使用任何名字。
你可以使用多种 Perl 的变量作为 Perl 的对象。大多数情况下我们会使用引用数组或哈希。
接下来我们为 Person 类创建一个构造函数,使用了 Perl 的哈希引用。
在创建对象时,你需要提供一个构造函数,它是一个子程序,返回对象的引用。
实例如下:
实例
package Person;
sub new
{
my $class = shift;
my $self = {
_firstName => shift,
_lastName => shift,
_ssn => shift,
};
# 输出用户信息
print "名字:$self->{_firstName}\n";
print "姓氏:$self->{_lastName}\n";
print "编号:$self->{_ssn}\n";
bless $self, $class;
return $self;
}
接下来我们创建一个对象:
$object = new Person( "小明", "王", 23234345);