术语汇编 Perl类概念详解

本文和大家重点讨论一下Perl类的概念,.要做好在Perl下的面向对象编程,你不仅要简单的用LarryWall提出Perl面向对象编程的标准,同时要对Perl类的概念及应用非常熟悉。

站在用户的角度思考问题,与客户深入沟通,找到交城网站设计与交城网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册网站空间、企业邮箱。业务覆盖交城地区。

Perl类

大多数人其实都没有注意到,Perl也是一种面向对象的编程语言,但它又和传统的面向对象的语言:如C++,Java完全不一样.要做好在Perl下的面向对象编程,你只要简单的用LarryWall提出Perl面向对象编程的标准就可以了。

这里举一个简单的例子:Person类代表一个人,包含一个人的一些简单的信息:名字,社会保障号等。

要创建一个Perl类,首先我们先要创建一个包--package.一个package是一个自包含的单元,它包含一些用户定义的变量和方法,类似于Java中的Package和C#中的namespace,也起到一个命名空间的作用.不同命名空间下的相同名字的变量,相互之间是不冲突的。

声明一个Perl类:packagePerson;

Person的作用域一直到这个文件的结尾.

在类中定义一个方法:在Person类中定义一个print的打印方法:

 
 
 
  1. subprint  
  2. {  
  3. my($self)=@_;  
  4. #printPersoninfo  
  5. printf("Name:%s%s\n\n",$self->firstName,$self->lastName);  
  6. }  
  7.  

 要调用这个方法,类似PHP,只需要:$khurt->print();

$khurt是一个Person的实例.my($self)=@_;这句意思,是把当前的变量赋给$self这个私有的变量.@_是Perl内置的一个变量,代表当前正在访问的变量,它是一个全局变量。

构造函数

要创建一个Perl类的实例,我们需要一个构造函数.当然,这个构造函数肯定要在相应的package中定义.大多数的Perl程序员把构造函数命

名为new,其实无论这个函数叫什么名字,Perl都能接受.

每个Perl对象的实例说到底都是一个数据类型,或者是数组型,或者是Hash列表型等等.这就象C++中的ADT(AbstractDataType)一样.

Person的构造函数如下,我们用的是一个Hash的引用作为一个类的实例:

 
 
 
  1. #constructor  
  2. subnew{  
  3. my$self={  
  4. _firstName=>undef,  
  5. _lastName=>undef,  
  6. _ssn=>undef,  
  7. _address=>undef  
  8. };  
  9. bless$self,'Person';  
  10. return$self;  

 这里,我们在Person包中创建了一个叫new的方法,实际上也就是在Persong类中创建了一个构造函数.这个对象的属性全部都在$self变量中了.bless$self'Person'这句比较重要.bless函数的第一个参数是一个变量的引用,第二参数是一个Perl类名.这个函数的作用是说明$self变量是属于Person类的。

要创建一个Person的实例:

my$khurt=Person->new();

我们还没有创建任何的访问方法和错误检查方法.为了让构造函数更加的可靠和可继承,将构造函数重写:

 
 
 
  1. subnew{  
  2. my($class)=@_;  
  3. my$self={  
  4. _firstName=>undef,  
  5. _lastName=>undef,  
  6. _ssn=>undef,  
  7. _address=>undef  
  8. };  
  9. bless$self,$class;  
  10. return$self;  
  11. }  

 其它的面向对象语言有私有变量,保护变量这些概念,控制了变量的访问权限,防止变量被直接改变.Perl没有私有变量,但是还是可以通过访问函数来控制变量的访问权限。

 【编辑推荐】

  1. Perl类及创建方法揭秘
  2. Perl文件句柄概念详解
  3. 解析四大Perl操作符用法
  4. 专家推荐 几款常用Perl开发工具
  5. 学习笔记 Perl数字与字符串间的自动转换

新闻标题:术语汇编 Perl类概念详解
URL网址:http://www.shufengxianlan.com/qtweb/news43/23443.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联