对象是一个数据结构,带有一些行为。作为一个类的实例,对象从中获益,取得其行为。
类定义的方法:就是那些应用于类和它的事例的性质。
如果需要区分上面两种情况,那么我们就把适用于某一个特定对象的方法叫做实例方法,而把那些适用于整个类的方法叫做类的方
法。
你可以把实例方法看做一个由特定对象执行的某种动作,
一个对象就是一个引用……
一个类只是一个包
Net::FTP - FTP Client class
SYNOPSIS
use Net::FTP;
$ftp = Net::FTP->new("some.host.name", Debug => 0)
or die "Cannot connect to some.host.name: $@"; ---创建对象
$ftp->login("anonymous",'-anonymous@') ---调用对象的login方法
or die "Cannot login ", $ftp->message;
$ftp->cwd("/pub") --调用对象的cmd方法
or die "Cannot change working directory ", $ftp->message;
$ftp->get("that.file")
or die "get failed ", $ftp->message;
$ftp->quit;
对于类方法而言,调用者是包的名字。对于一个实例方法,调用者是一个对象的引用。
INVOCANT->METHOD(LIST)
INVOCANT->METHOD
当INVOCANT是一个包的名字的时候,我们把那个被调用的METHOD看做类的方法。
比如,使用类方法 summon 的构造一个类,然后在生成的对象上调用实例方法 speak,
你可以这么说:
$mage = Wizard->summon(“Gandalf”); # 类方法
$mage->speak(“friend”); # 实例方法
summon 和 speak 方法都是由 Wizard 类定义的——或者是从一个它继承来的类定义
的。不过你用不着担心这个。用不着管 Wizard 的闲事
12.4 构造对象
所有的对象都是引用。。。。。。。。。。。
但不是所有引用都是对象,一个引用不会作为对象运转,除非引用它的东西有特殊标记告诉Perl它属于哪个包。
把一个引用和一个包名字标记起来(因此也和包中的类标记起来了,因为一个类就是一个包) 的动作被称作赐福(blessing)
你可以把赐福(bless)看作把一个引用转换成一个对象,尽管更准确地说是它把该引用转换成一个对象引用。
12.4.2 初始器
假设一个 Horse 类有一些实例属性,比如 “name” 和 “color”:
$steed = Horse->new(name => “shadowfax”, color => “white”);