perl面向对象

perl面向对象

一.使用哈希引用方术创建对象

基于匿名哈希表的方式,每个对象实例的实质就是一个指向匿名哈希表的引用。在这个匿名哈希表中,存储了所有的实例属性。

1.创建类文件 Person.pm

#!usl/bin/perl

package Person;

#new方法就是一个构造函数,它返回一个与类名相关的对象的引用

sub new

{
    my $class = shift;   #有个隐含的参数在@_数组第一个位置,就是调用该类方法的类名称,也就是这里的shift,我们把类名称存储到变量class中
    #打印类名称
    print "class=$class\n";  #打印Person
  
    #创建一个匿名哈希表的引用,{}是一个匿名哈希表
    my $self={
        Name=>shift,
        Age=>shift,
        Sex=>shift,
    };
    #输出信息
    print "名字:$self->{Name}\n";
    print "年纪:$self->{Age}\n";
    print "性别:$self->{Sex}\n";

 #通过 bless 把一个引用和这个类名相关联,返回这个引用就构造出一个对象
    bless $self, $class;
    return $self;
}

#方法的第一个参数为对象或者被引用的包
sub SetName
{
   #_self接收的是对象,—Name接收的是设置的Name
   my($_self,$_Name)=@_;
   print "before Name=$_self->{Name}";
   $_self->{Name}=$_Name if defined $_Name;
    print "after Name=$_self->{Name}";
}
sub GetName
{
     my($_self)=@_;
     return $_self->{Name};
}
1;

2.使用类

#!/usr/bin/perl

use Person;
$object = new Person( "LiMing", 25, "man");

$object->SetName("LiQiang");
$__Name=$object->GetName();
print "$__Name";

 

二.使用数组引用方式创建对象

 

posted @ 2021-01-28 19:59  WellMandala  阅读(129)  评论(0编辑  收藏  举报