浅析Perl语言中的Perl类、对象、包概念

开发 架构
你对Perl语言中Perl类、对象和包有很多值得学习的地方,你对它们的概念你是否了解,这里向大家简单介绍一下,希望本文的介绍能让你有所收获。

本文和大家重点讨论一下Perl类、对象、包的概念及使用,Perl类是一个Perl包,其中含提供对象方法的Perl类,而对象是对Perl类中数据项的引用。

Perl类、对象、包概念解析

Perl类与对象

◆Perl类是一个Perl包,其中含提供对象方法的Perl类。
◆方法是一个Perl子程序,Perl类名是其***个参数。
◆对象是对Perl类中数据项的引用。

◆首先,创建一个名为Cocoa.pm的包文件(扩展名pm是包的缺省扩展名,意为PerlModule)。一个模块就是一个包,一个包就是一个Perl类。在做其它事之前,先加入1;”这样一行,当你增加其它行时,记住保留“1;”为***一行。这是Perl包的必需条件,否则该包就不会被Perl处理。下面是该文件的基本结构。

packageCocoa;
requireExporter;
@ISA=qw(Exporter);
@EXPORT=qw(setImports,declareMain,closeMain);
#这两行包含上Exporter.pm模块,并把ExporterPerl类名加入@ISA数组以供查找。接下来把你自己的Perl类方法列在@EXPORT数组中就可以了。例如想输出方法closeMain和declareMain,语句如下:@EXPORT=qw(declareMain,closeMain);

构造函数

构造函数是Perl类的子程序,它返回与Perl类名相关的一个引用。将Perl类名与引用相结合称为“祝福”一个对象,因为建立该结合的函数名为bless(),其语法为:
#blessYeReference[,classname]
#YeReference是对被“祝福”的对象的引用,classname是可选项,指定对象获取方法的包名用于继承其他Perl类,其缺省值为当前包名。
创建一个构建函数的方法为返回已与该Perl类结合的内部结构的引用,如:构造函数
 

  1. subnew{  
  2. my$this={};#Createananonymoushash,and#selfpointstoit.  
  3. bless$this;#ConnectthehashtothepackageCocoa.bless$this,$parentClass  
  4. return$this;#Returnthereferencetothehash.  
  5. }  

 {}创建一个对不含键/值对的哈希表(即关联数组)的引用,返回值被赋给局域变量$this。函数bless()取出该引用,告诉对象它引用的是Cocoa,***返回该引用。函数的返回值现在指向这个匿名哈希表。
从new()函数返回后,$this引用被销毁,但调用函数保存了对该哈希表的引用,因此该哈希表的引用数不会为零,从而使Perl在内存中保存该哈希表。

Perl类的调用

  1. 1#!/usr/bin/perl  
  2. 2push(@INC,'pwd');  
  3. 3useCocoa;  
  4. 4$cup=newCocoa;#或者$cup=cocoa->new();或$cup=Cocoa::new(); 

 包的构造函数
 

  1. subnew{  
  2. my$type=shift;  
  3. my%parm=@_;  
  4. my$this=[];  
  5. $this->[0]=$parm{'Name'};  
  6. $this->[1]=$parm{'x'};  
  7. $this->[2]=$parm{'y'};  
  8. bless$this,$type;  
  9. }  

 新建对象:

$mug=Cocoa::new('Name'=>'top','x'=>10,'y'=>20);
操作符=>与逗号操作服功能相同,但=>可读性好。访问方法如下:
print"Name=$mug->{'Name'}\n";
print"x=$mug->{'x'}\n";
print"y=$mug->{'y'}\n";

Perl类静态方法: 

  1. 1.subnameLister{  
  2. 2.my$this=shift;#构造函数即静态方法。虚方法通常首先把***个参数shift到变量self或this中,然后将该值作普通的引用使用  
  3. 3.my($keys,$value);  
  4. 4.while(($key,$value)=each(%$this)){  
  5. 5.print"\t$keyis$value.\n";  
  6. 6.}  
  7. 7.}  
  8.  

【编辑推荐】

  1. 构造函数中Perl方法用法解析
  2. Perl类及创建方法揭秘
  3. 术语汇编 Perl类概念详解
  4. 浅析Perl面向对象编程用法
  5. 解析Perl语言中Perl类的注释和创建方法

 

责任编辑:佚名 来源: csdn.net
相关推荐

2010-07-19 09:16:47

Perl包

2010-07-19 10:01:57

Perl函数

2010-07-21 09:50:51

Perl调试

2010-07-20 10:02:15

Perl类

2010-07-20 16:05:07

Perl包

2010-07-19 15:37:48

Perl日期时间

2010-07-19 08:39:14

Perl包

2010-07-23 13:07:39

Perl

2010-07-26 16:23:23

Perl语言

2010-07-13 15:34:09

Perl语言

2010-07-13 17:18:29

Perl面向对象编程

2010-07-20 09:23:30

Perl构造函数

2010-07-20 11:37:00

Perl函数返回值

2010-07-13 09:50:55

Perl数组

2010-07-23 13:23:10

Perl语言

2010-07-20 09:05:08

Perl类

2010-07-19 09:52:04

Perl标量

2010-07-15 09:56:58

Perl语言

2010-07-13 10:05:54

Perl语言

2010-07-23 13:46:27

Perl语言
点赞
收藏

51CTO技术栈公众号