- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
本文和大家重点讨论一下Perl面向对象编程(OOP)的概念,主要包括模块简介,Perl中的类,创建类,构造函数,方法,方法的输出和方法的调用等内容,相信通过本文的学习你对Perl面向对象的概念一定会有深刻的认识。
Perl面向对象编程(OOP)
介绍如何使用Perl的Perl面向对象编程(OOP)特性及如何构建对象,还包括继承、方法重载和数据封装等内容。
一、模块简介
模块(module)就是Perl包(pachage)。Perl中的对象基于对包中数据项的引用。(引用见第x章引用)。
详见#28的perlmod和perlobj。
在用其他语言进行Perl面向对象编程时,先声明一个类然后创建该类的对象(实例),特定类任何对象的行为方式是相同的,由类方法确定,能够通过定义新类或从现存类继承来创建类。已熟悉Perl面向对象编程的人能够在此碰到许多熟悉的术语。Perl一直是个Perl面向对象的语言,在Perl5中,语法略有变动,更规范化了对象的使用。
下面三个定义对理解对象、类和方法在Perl中如何工作至关重要。
◆类是个Perl包,其中含提供对象方法的类。
◆方法是个Perl子程式,类名是其第一个参数。
◆对象是对类中数据项的引用。.
二、Perl中的类
再强调一下,一个Perl类是仅是个包而已。当您看到Perl文档中提到“类”时,把他看作“包”就行了。Perl5的语法能够创建类,假如您已熟悉C,那么大部分语法您已掌控了。和Perl4不同的概念是用双冒号(::)来标识基本类和继承类(子类)。
Perl面向对象的一个重要特性是继承。Perl中的继承特性和其他Perl面向对象语言不完全相同,他只继承方法,您必须用自己的机制来实现数据的继承。
因为每个类是个包,所以他有自己的名字空间及自己的符号名关联数组(详见第x章关联数组),每个类因而能够使用自己的单独符号名集。和包的引用结合,能够用单引号(\\)操作符来定位类中的变量,类中成员的定位形式如:$class\\$member。在Perl5中,可用双冒号替代单引号来获得引用,如:$class\\$member和$class::$member相同。.
三、创建类
本节介绍创建一个新类的必要步骤。下面使用的例子是创建一个称为Cocoa的简单的类,其功能是输出一个简单的Java应用的源码的必要部分。放心,这个例子无需您有Java的知识,但也不会使您成为Java专家,其目的是讲述创建类的概念。
首先,创建一个名为Cocoa.pm的包文档(扩展名pm是包的缺省扩展名,意为PerlModule)。一个模块就是个包,一个包就是个类。在做其他事之前,先加入“1;”这样一行,当您增加其他行时,记住保留“1;”为最后一行。这是Perl包的必需条件,否则该包就不会被Perl处理。.
四、构造函数
Perl面向对象中构造函数是类的子程式,他返回和类名相关的一个引用。将类名和引用相结合称为“祝福”一个对象,因为建立该结合的函数名为bless(),其语法为:
blessYeReference[,classname]
YeReference是对被“祝福”的对象的引用,classname是可选项,指定对象获取方法的包名,其缺省值为当前包名。
创建一个构建函数的方法为返回已和该类结合的内部结构的引用。如..
subnew{?
my$this={};#Createananonymoushash,and#selfpointstoit.?
bless$this;#ConnectthehashtothepackageCocoa.?
return$this;#Returnthereferencetothehash.?
}?
五、方法
Perl类的方法只但是是个Perl子程式而已,也即通常所说的成员函数。Perl面向对象中Perl的方法定义不提供任何特别语法,但规定方法的第一个参数为对象或其被引用的包。Perl有两种方法:静态方法和虚方法。
静态方法第一个参数为类名,虚方法第一个参数为对象的引用。方法处理第一个参数的方式决定了他是静态的还是虚的。静态方法一般忽略掉第一个参数,因为他们已知道自己在哪个类了,构造函数即静态方法。虚方法通常首先把第一个参数shift到变量self或this中,然后将该值作普通的引用使用。.
六、方法的输出
假如您现在想引用Cocoa.pm包,将会得到编译错误说未找到方法,这是因为Cocoa.pm的方法还没有输出。输出方法需要Exporter模块,在包的开始部分加上下列两行:
requireExporter;
@ISA=qw(Ex
您可能关注的文档
最近下载
- AutoCAD2022基础教程PPT完整全套教学课件.pptx
- 【沪科】八年级物理(全一册)知识点总结.docx VIP
- 【沪科物理八年级】3.2 声音的特性 同步练习.docx VIP
- 导轨单杆切割磁感线+电容(解析版)--2024高考物理疑难题.pdf
- 新能源汽车技术专业职业生涯规划书发展报告大一全国大学生职业规划大赛模板范文1500字.pdf VIP
- 中班语言《耳朵上的绿星星》课件.pptx
- 水力学典型复习题及答案详解.docx
- TBT454.1-2021 铁路通信信号词汇 第1部分:铁路信号词汇.pdf
- Dirty Rotten Scoundrels《骗徒臭事多(1988)》完整中英文对照剧本.docx VIP
- 舒平木门加工中心培训.docx
文档评论(0)