perl学习笔记七———继承
发布时间:2020-12-15 23:48:30 所属栏目:大数据 来源:网络整理
导读:点击打开链接 package Person ; # package name must be same as file namesub new{ my $class = shift ; my ($name,$age) = @_ ; my $self = { "name" = $name,"age" = $age,} ; bless($self,$class) ; return $self ;}sub set_name{ my ($self,$name) = @_
点击打开链接 package Person ; # package name must be same as file name sub new{ my $class = shift ; my ($name,$age) = @_ ; my $self = { "name" => $name,"age" => $age,} ; bless($self,$class) ; return $self ; } sub set_name{ my ($self,$name) = @_ ; $self->{name} = $name ; } sub get_name{ my $self = shift ; return $self->{name} ; } sub set_age{ my($self,$age) = @_ ; $self->{age} = $age ; } sub get_age{ my $self = shift ; return $self->{age} ; } 1 ;在定义一个Employee类,继承自Person类
use Person ; package Employee ; @ISA = qw(Person) ; sub new{ my $class = shift ; my ($name,$age,$salary) = @_ ; my $self = Person->new($name,$age) ; $self->{salary} = $salary ; bless($self,$class) ; return $self ; } sub get_salary{ my $self = shift ; return $self->{salary} ; } sub set_salary{ my ($self,$salary) = @_ ; $self->{salary} = $salary ; } sub change_salary{ my $self = shift ; my $new_salary = shift ; $self->{salary} = $new_salary ; } 1 ;创建一个Employee对象并输出其信息,然后修改Employee的属性并再次输出信息
my $employee = Employee->new("zdd","30","11k") ; print $employee->get_name(),"n" ; print $employee->get_age(),"n" ; print $employee->get_salary(),"n" ; # Change age and salary $employee->set_age(35) ; $employee->set_salary("20k") ; # print new info print $employee->get_name(),"n" ; 1,shift的含义: shift 的意思就是把整个 array 的第一个 value 取出,并将 array 长度减一(有点像 pop out) 2,bless()函数的作用:点击打开链接 3,qw()的作用,w(foo bar baz) 相当于?('foo','bar','baz') 4,self的作用?$self 在这里相当于 C++ 里的 this 指针,由于 $self 是“偷偷地”传进来的,这时参数列表相当于 ($self,ARG1,ARG2),所以要用 shift 移去,这样子才能得到传入参数列表 (ARG1,ARG2) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |