Perl 教程 之 Perl 面向对象 3

简介: Perl的面向对象编程涉及两种实现:匿名哈希表引用和数组引用。对象是类(Perl包)中数据项的引用,方法是接收类名或对象作首参的子程序。

Perl 教程 之 Perl 面向对象 3

Perl 面向对象

Perl 中有两种不同地面向对象编程的实现:

一是基于匿名哈希表的方式,每个对象实例的实质就是一个指向匿名哈希表的引用。在这个匿名哈希表中,存储了所有的实例属性。

二是基于数组的方式,在定义一个类的时候,我们将为每一个实例属性创建一个数组,而每一个对象实例的实质就是一个指向这些数组中某一行索引的引用。在这些数组中,存储着所有的实例属性。

面向对象基础概念

面向对象有很多基础概念,这里我们接收三个:对象、类和方法。

对象:对象是对类中数据项的引用。.

类:类是个Perl包,其中含提供对象方法的类。

方法:方法是个Perl子程序,类名是其第一个参数。

Perl 提供了 bless() 函数,bless 是用来构造对象的, 通过 bless 把一个引用和这个类名相关联,返回这个引用就构造出一个对象。

创建和使用对象

创建一个类的实例 (对象) 我们需要定义一个构造函数,大多数程序使用类名作为构造函数,Perl 中可以使用任何名字。

你可以使用多种 Perl 的变量作为 Perl 的对象。大多数情况下我们会使用引用数组或哈希。

接下来我们为 Person 类创建一个构造函数,使用了 Perl 的哈希引用。

在创建对象时,你需要提供一个构造函数,它是一个子程序,返回对象的引用。

实例如下:

实例
package Person;
sub new
{
my $class = shift;
my $self = {
_firstName => shift,
_lastName => shift,
_ssn => shift,
};

# 输出用户信息
print "名字:$self->{_firstName}\n";
print "姓氏:$self->{_lastName}\n";
print "编号:$self->{_ssn}\n";
bless $self, $class;
return $self;

}
接下来我们创建一个对象:

$object = new Person( "小明", "王", 23234345);

目录
相关文章
|
7月前
|
存储 索引 Perl
Perl 教程 之 Perl 面向对象 5
Perl的面向对象编程涉及匿名哈希表或数组来存储对象属性。类通过`@ISA`数组实现继承,如Employee继承Person。在Employee.pm中声明`@ISA = qw(Person)`。在main.pl中,创建Employee对象并调用方法,显示继承功能。程序输出显示姓名的变化。
73 0
|
7月前
|
存储 索引 Perl
Perl 教程 之 Perl 面向对象 6
Perl 面向对象编程有两种实现:匿名哈希表和数组方式。教程中展示了基于哈希表的继承示例,Employee 类继承并重写了 Person 类的方法。在Employee中,`new`构造函数被重写,添加了新属性,`getFirstName`被重写,还新增了`setLastName`和`getLastName`方法。在主程序中,创建Employee对象并调用这些方法,显示了方法重写和辅助函数的使用效果。
49 3
|
7月前
|
存储 索引 Perl
Perl 教程 之 Perl 面向对象 1
Perl的面向对象编程涉及两种实现:使用匿名哈希表存储对象属性的引用,或使用数组为每个属性创建行索引。对象是类的实例,类是包含方法的Perl包。方法是接受对象或类名作为首参的子程序。`bless()`函数用于构建对象,将引用与类关联。
34 3
|
7月前
|
存储 索引 Perl
Perl 教程 之 Perl 面向对象 4
Perl的面向对象涉及两种对象实现:匿名哈希表和数组。对象是类的实例,类是包含方法的Perl包。方法是接收对象引用作为首参的子程序。`bless()`函数用于构造对象。以下是一个Person类的例子,包含`new`构造器、`getFirstName`和`setFirstName`方法。在`employee.pl`脚本中,创建Person对象并演示了方法的使用。输出显示了姓名的设置和获取过程。
46 2
|
7月前
|
存储 Java 索引
Perl 教程 之 Perl 面向对象 7
在Perl OOP中,对象基于匿名哈希或数组实现,存储实例属性。当调用不存在的方法时,Perl查找AUTOLOAD来动态处理。析构函数DESTROY在对象销毁时自动调用,允许执行清理操作。不能修改传递给DESTROY的只读引用,但可写入对象本身。析构器可调用基类或其他类的DESTROY,但通常不手动调用。对象释放时,其所含对象也会自动销毁。
41 1
|
7月前
|
存储 索引 Perl
Perl 教程 之 Perl 面向对象 8
Perl面向对象教程展示了两种实现:通过匿名哈希表或数组存储对象属性。示例中,`MyClass`与子类`MySubClass`被定义,后者继承并扩展了父类方法。在主程序中,创建并调用了对象,演示了构造、方法调用、继承及自动调用析构函数的过程。
57 1
|
7月前
|
移动开发 网络安全 Perl
Perl 教程 之 Perl CGI编程 13
Perl CGI教程介绍了CGI(Common Gateway Interface)作为服务器与客户端交互的接口,并讲解了如何使用Cookie来弥补HTTP协议中用户身份验证的不足。Cookie通过设置HTTP头部的Set-Cookie字段,包括name、expires、path、domain和secure属性来实现。在Perl中设置Cookie涉及打印包含这些字段的响应头。示例代码展示了如何设置UserID、Password以及过期时间等Cookie信息。
52 2
|
7月前
|
存储 索引 Perl
Perl 教程 之 Perl 面向对象 2
Perl的面向对象编程涉及两种实现:匿名哈希表引用和数组引用。对象是类数据的引用,类是包含方法的Perl包。方法是接收类名作为首参的子程序。`bless()`函数用于构造对象。类定义为包,提供独立命名空间,文件通常以`.pm`结尾。例如: ```markdown .package Person # 类代码... .end ``` 简而言之,Perl的OOP基于引用,类是包,方法是子程序,`bless`构造对象,类定义创建命名空间。
39 2
|
7月前
|
Shell Linux Apache
Perl 教程 之 Perl CGI编程 1
CGI(Common Gateway Interface)是服务器与客户端交互的接口,允许执行如Perl的脚本处理用户请求。当浏览器访问URL,服务器解析请求,查找文件,若存在则返回内容。CGI程序可采用多种语言编写。Apache服务器中,CGI脚本通常存放在`/var/www/cgi-bin`,扩展名`.cgi`或`.pl`。要启用CGI,需配置Apache的httpd.conf
40 2
|
7月前
|
缓存 Perl 移动开发
Perl 教程 之 Perl CGI编程 6
Perl CGI教程介绍了CGI(Common Gateway Interface)是一种让服务器与客户端HTML交互的程序接口。GET方法通过URL传递编码数据,例如`/cgi-bin/test.cgi?name=百度&url=http://www.baidu.com`。CGI脚本示例展示了如何解析GET请求中的参数并生成HTML响应。注意,GET请求可能出现在浏览器历史和缓存中,不适合敏感数据传输,并且有长度限制。
31 1

热门文章

最新文章

相关实验场景

更多