位置: 编程技术 - 正文

perl面向对象实例(面向对象实例化)

编辑:rootadmin

推荐整理分享perl面向对象实例(面向对象实例化),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:pho面向对象,面向对象csdn,面向对象中super的作用,pho面向对象,面向对象private,面向对象实例化,perl 面向对象,面向对象private,内容如对您有帮助,希望把文章链接给更多的朋友!

首先让我们来看看有关 Perl 面向对象编程的三个基本定义:

1. 一个“对象”是指一个“有办法知道它是属于哪个类”的简单引用。(对象就是引用变量)2. 一个“类”是指一个“有办法给属于它的对象提供一些方法”的简单的包。(类就是包)3. 一个“方法”是指一个“接受一个对象或者类名称作为第一个参数”的简单的子程序。(类的方法就是第一个参数为类名或对象的方法)

一个类只是一个简单的包

和 C++ 不同,Perl 并不为类定义提供任何特殊语法。实际上类只是一个包而已。你可以把一个包当作一个类用,并且把包里的函数当作类的方法来用。不过,有一个特殊的数组,叫做 @ISA,它说明了“当 Perl 在当前包中找不到想要的方法时,应当继续从哪儿去找”。这就是 Perl 实现“继承”的关键。@ISA中的每个元素都是一个别的包的名字。当类找不到方法时,它会从 @ISA 数组中依次寻找(深度优先)。类通过访问 @ISA 来知道哪些类是它的基类。

所有的类都有一个隐含的基类(祖先类):"UNIVERSAL"。"UNIVERSAL" 类为它的子类提供几个通用的类方法。它提供以下几个方法:isa,can。其中isa用来判断变量是否从某个类继承而来,can后面的参数则是一个方法,判断这个方法是否在这个类或者基类中被定义。另外你可以给UNIVERSAL添加新的方法。一旦给它添加了新的方法,所有的class都可以调用。

给UNIBERSAL添加新方法的例子:

这样就可以在每个类中调用这个函数,并且log之前会把类名打印出来。

对象仅仅只是引用

Perl中的构造器只是一个子程序,该子程序返回一个被bless处理的引用,这个经过 bless 处理的引用就是人们所说的“对象”,而 bless 的作用就是用来说明这个对象是隶属于哪个“类”。

最简单的构造器:

如果你希望用户不仅能够用 "CLASS->new()" 这种形式来调用你的构造函数,还能够以 "$obj->new()" 这样的形式来调用的话,那么就这么做:

perl面向对象实例(面向对象实例化)

一个方法就是一个简单的子程序

方法把它被调用时的对象或者类名称当作它的第一个参数。有两种不同的调用方法的途径,分别成为“调用类方法”和“调用实例方法”。类方法把类名当作第一个参数。它提供针对类的功能,而不是针对某个具体的对象的功能。构造器通常是一个类方法。大多数类方法简单地忽略第一个参数,因为方法知道自己处在什么类里面,也不关心它是通过什么类来调用的。Perl 提供了两种不同的形式去调用一个方法。最简单的形式是采用箭头符号:

你可以早就熟悉了引用的 "->" 操作符。事实上,因为上面的 $fred是一个指向了对象的引用,因此你也可以把箭头操作符理解为另外一种形式的解引用。

出现在箭头左边的引用或者类名,将作为第一个参数传递给箭头右边的方法。所以上面的代码就分别相当于这样:

简单示例

1、说明

本程序演示了在Perl中如何进行面向对象编程:演示程序包含两个文件:person.pl 和 person.pm,把 person.pl 和 person.pm 放在当前目录下,运行"perl person.pl"即可以看到结果。person.pm定义了名为person的类。person.pl中创建了person类的实例,并测试了person的成员方法。

2、person.pm的内容

3、person.pl的内容

4、程序运行结果

Perl eval函数使用实例 Perl作为一种脚本语言可以实时地生成和执行代码。这种特性可以把代码的编译推迟到运行时,所以又称为动态代码。另外,Perl也如Java、C++一样提供了

Perl函数(子程序)学习笔记 一、函数定义子程序即一段分离的代码,它可以使减少重复代码且程序易读.perl中,子程序可以出现在程序的任何地方.但一般放在程序的开始或结尾.subsubro

Perl中的控制结构学习笔记 一、语句的种类计算机是一种工具,优势在于执行重复任务.循环执行,循环语句。需要作出大量的判断,按条件执行,条件语句。顺序语句。表达式真

标签: 面向对象实例化

本文链接地址:https://www.jiuchutong.com/biancheng/372401.html 转载请保留说明!

上一篇:7个perl数组高级操作技巧分享(perl里怎么对数组实现一次遍历)

下一篇:Perl eval函数使用实例(perfcurve函数)

  • 高新技术企业享受15%税率优惠的条件
  • 季度报表的利润表是填本月数填六月的书吗
  • 收到发票怎么写收据
  • 增值税冲红附加税费可以退吗
  • 领用自产产品用于职工食堂
  • 建筑企业外地预缴
  • 如何区别文化体育业和娱乐业
  • 清洗汽车的目的
  • 哪些支出允许在企业所得税前扣除
  • 企业间借款增值税税率
  • 行政事业单位净资产关系图
  • 公司买了样品又退掉了怎么做分录
  • 研发加计扣除税率
  • 建筑业红字发票备注
  • 附加税是当月计提当月缴纳吗
  • 个人所得税扣除的
  • 季度报没有报怎么办
  • 税款流失是什么意思
  • 金税盘和税控盘和ukey
  • 个体户在银行开户
  • 追补确认年度是哪一年
  • 设计费计入成本
  • 无需支付的款项需要缴税吗
  • 外购货物评估减值要转出进项税额吗?
  • 面对通过网络涌入的大量信息,我们应该学会
  • 代购买东西流程
  • 合同负债和预收账款的关系
  • 车辆的代驾费应该怎么收
  • 工程施工科目借贷方向
  • vite首次打开界面加载慢问题/解决
  • 融资租入固定资产的入账价值
  • 营改增全面推开为什么还叫试点
  • 应付账款盘盈会计分录
  • 非营利组织企业所得税免税收入
  • 长期股权投资成本法收回投资
  • php生成guid
  • 黄金零售环节增值税的缴纳
  • css基础入门
  • 车子以旧换新
  • 缴纳城镇土地税
  • 企业向个人借款利息如何缴纳增值税
  • 个人劳务费可以开什么类目?
  • 不良品扣款入什么科目
  • 应收账款计入营业收入
  • 认缴制没有实资本会怎么样
  • 盘盈盘亏的定义
  • 事业单位出售废品流程
  • 房租已付未收发票可以待摊费用吗
  • 企业网银年服务费怎么做账
  • 不含税转换
  • 分公司往子公司投资如何做税务处理?
  • 水利建设基金筹集和使用管理办法
  • 银行打对公回单
  • 公务机票保险费能报销吗
  • 在数据库master中拒绝了create table权限
  • 在mac上如何使用微信
  • mysql的密码忘了该怎么办
  • win10的java环境该怎么配置?java环境变量配置介绍
  • win7检测有错误怎么办
  • 手机如何使用windows
  • windowxp怎么取消开机密码
  • 如何在vmware虚拟机中安装macos11.0
  • linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)
  • 如何判断win7
  • 微软补丁发布时间
  • cocos2dx-3.1.1 win8+eclipse+android开发 初学者容易迷惑的两个问题
  • 30岁亿万富婆
  • 给a标签加css的伪类
  • python数值计算基础
  • JavaScript中的数据类型分为两大类
  • viewpager2 bug
  • unity 人物控制
  • 在WINDOWS系统中回收站的作用不包括
  • python,web
  • 汽车发票包含增值税吗
  • 四川省地方税务局2017年1号公告
  • 辽宁税务遴选
  • 收到发票需要代签吗
  • 公司自有房产出租缴税
  • 个人股和公司股
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设