23-Perl 面向对象
1.Perl 面向对象 Perl 中有两种不同地面向对象编程的实现: 一是基于匿名哈希表的方式,每个对象实例的实质就是一个指向匿名哈希表的引用。在这个匿名哈希表中,存储来所有的实例属性。 二是基于数组的方式,在定义一个类的时候,我们将为每一个实例属性创建一个数组,而每一个对象实例的实质就是一个指向这些数组中某一行索引的引用。在这些数组中,存储着所有的实例属性。 2.面向对象基础概念 面向对象有很多基础概念,这里我们接收三个:对象、类和方法。 对象:对象是对类中数据项的引用。. 类:类是个Perl包,其中含提供对象方法的类。 方法:方法是个Perl子程序,类名是其第一个参数。 Perl 提供了 bless() 函数,bless 是用来构造对象的, 通过 bless 把一个引用和这个类名相关联,返回这个引用就构造出一个对象。 3.类的定义 一个类只是一个简单的包。 可以把一个包当作一个类用,并且把包里的函数当作类的方法来用。 Perl 的包提供了独立的命名空间,所以不同包的方法与变量名不会冲突。 Perl 类的文件后缀为 .pm。 接下来我们创建一个 Person 类: package Person; 类的代码范围到脚本文件的最后一行,或者到下一个 package 关键字前。 4.创建和使用对象 创建一个类的实例 (对象) 我们需要定义一个构造函数,大多数程序使用类名作为构造函数