大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> CGI专区 -> Perl教学(13)Perl的面向对象编程之三

Perl教学(13)Perl的面向对象编程之三

时间: 2021-07-31 作者:daque

五、本领perl类的本领只然而是一个perl子步调罢了,也即常常所说的分子因变量。perl的本领设置不供给任何特出语法,但规则本领的第一个参数为东西或其被援用的包。perl有两种本领:静态本领和虚本领。静态本领第一个参数为类名,虚本领第一个参数为东西的援用。本领处置第一个参数的办法确定了它是静态的仍旧虚的。静态本领普遍忽视掉第一个参数,由于它们仍旧领会本人在哪个类了,结构因变量即静态本领。虚本领常常开始把第一个参数shift到变量self或this中,而后将该值作普遍的援用运用。如:1. sub namelister {2. my $this = shift;3. my ($keys ,$value );4. while (($key, $value) = each (%$this)) {5. print "\t$key is $value.\n";6. }7. } 六、本领的输入即使你此刻想援用cocoa.pm包,将会获得编写翻译缺点说未找到本领,这是由于cocoa.pm的本领还没有输入。输入本领须要exporter模块,在包的发端局部加左右列两行:require exporter;@isa = qw (exporter);这两行包括上exporter.pm模块,并把exporter类名介入@isa数组以供搜索。接下来把你本人的类本领列在@export数组中就不妨了。比方想输入本领closemain和declaremain,语句如次:@export = qw (declaremain , closemain);perl类的接受是经过@isa数组实行的。@isa数组不须要在任何包中设置,但是,一旦它被设置,perl就把它看作目次名的特出数组。它与@inc数组一致,@inc是包括文献的探求路途。@isa数组含有类(包)名,当一个本领在暂时包中未找到时就到@isa中的包去探求。@isa中还含有暂时类接受的基类名。类中挪用的一切本领必需属于同一个类或@isa数组设置的基类。即使一个本领在@isa数组中未找到,perl就到autoload()子步调中探求,这个可选的子步调在暂时包顶用sub设置。若运用autoload子步调,必需用use autoload;语句挪用autoload.pm包。autoload子步调试验从已安置的perl库中承载挪用的本领。即使autoload也波折了,perl再到universal类做结果一次试验,即使仍波折,perl就天生对于该没辙领会因变量的缺点。七、本领的挪用挪用一个东西的本领有两种本领,一是经过该象的援用(虚本领),一是径直运用类名(静态本领)。固然梅椒ū匦胍驯皇涑觥O衷诟鳦ocoa类减少少许本领,代码如次: package cocoa;require exporter;@isa = qw(exporter);@export = qw(setimports, declaremain, closemain);## this routine creates the references for imports in java functions#sub setimports{my $class = shift @_;my @names = @_;foreach (@names) {print "import " . $_ . ";\n";} }## this routine declares the main function in a java script#sub declaremain{my $class = shift @_;my ( $name, $extends, $implements) = @_;print "\n public class $name";if ($extends) {print " extends " . $extends;}if ($implements) {print " implements " . $implements;}print " { \n";}## this routine declares the main function in a java script#sub closemain{print "} \n";}## this subroutine creates the header for the file.#sub new {my $this = {};print "\n /* \n ** created by cocoa.pm \n ** use at own risk \n */ \n";bless $this;return $this;}

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.