zoukankan      html  css  js  c++  java
  • perl 面向对象 use base

    1、XXX.pm 文件里面的第一行要是:package  XXX;
    2、要有构造函数 sub new,实现如下:
    sub new {
        my $class = shift; # Get the request class name
        my $self = {};
    	my ($name)=@_;    
          my $self = {    
             "name" =>$name   
                     };  
        bless $self, $class; # Use class name to bless() reference
        return $self;
    }
    
    3、接着用sub YYY{}  定义自己的函数
    例如:
    sub setBeanType{
     my ($class, $name) = @_;//传进来的第一个参数是类似c++的this指针,第二个才是真正的参数
     $class->{'Bean'} = $name;
     print "Set bean to $name 
    ";
    }
    
    [root@wx03 test]# cat p1.pm
    package p1;
    use Data::Dumper;
    sub new {
        my $self = {};
        my $invocant = shift;    
    my $class = ref($invocant) || $invocant;
    	my ($name)=@_;    
          my $self = {    
             "name" =>$name    
                     };  
        bless $self, $class; # Use class name to bless() reference
        print "111111111111111111
    ";
    $str=Dumper($self);
    print "$str is $str
    ";
        return $self;
    
    };
    
    
    sub setBeanType{
     my ($self, $name) = @_;##//传进来的第一个参数是类似c++的self指针,第二个才是真正的参数
     $self->{'Bean'} = $name;
     print "Set bean to $name 
    ";
    $str=Dumper($self);
    print "$str is $str
    "; 
    };
    
    
    1;
    
    
    [root@wx03 test]# cat p1.pm
    package p1;
    use base qw(p2);
    use Data::Dumper;
    sub new {
        my $self = {};
        my $invocant = shift;    
    my $class = ref($invocant) || $invocant;
    	my ($name)=@_;    
          my $self = {    
             "name" =>$name    
                     };  
        bless $self, $class; # Use class name to bless() reference
        print "111111111111111111
    ";
    $str=Dumper($self);
    print "$str is $str
    ";
        return $self;
    
    };
    
    
    sub setBeanType{
     my ($self, $name) = @_;##//传进来的第一个参数是类似c++的self指针,第二个才是真正的参数
     $self->{'Bean'} = $name;
     print "Set bean to $name 
    ";
    $str=Dumper($self);
    print "$str is $str
    "; 
    };
    
    
    1;
    
    
    [root@wx03 test]# cat p1.pl
    unshift(@INC,"/root/test"); 
    require p1;
    $ua=p1->new('lily'); 
    print "2222222222222222
    ";
    $str=$ua->setBeanType(scan);
    
    
    [root@wx03 test]# perl p1.pl
    111111111111111111
    $str is $VAR1 = bless( {
                     'name' => 'lily'
                   }, 'p1' );
    
    2222222222222222
    Set bean to scan 
    $str is $VAR1 = bless( {
                     'Bean' => 'scan',
                     'name' => 'lily'
                   }, 'p1' );
    
    			   
    			   
    不断的填充这个对象:
    
    使用基类:
    use base 是面向对象编程时,用来描述“基类”的:
    
    
    
    
    

  • 相关阅读:
    35.使用拦截器实现权限验证
    34.TokenInterceptor防止表单重复提交
    33.使用默认的execAndWait拦截器
    32.使用来MethodFilterInterceptor灵活拦截
    31.自定义拦截器
    sql 学习笔记 档
    AVR文章7课时:动态数字化控制
    MapReduce 规划 系列的12 使用Hadoop Streaming技术集成newLISP文字
    左右TS分析流
    Java达到MySQL数据库备份(两)
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6200053.html
Copyright © 2011-2022 走看看