• 第12章 对象上


    对象是一个数据结构,带有一些行为。作为一个类的实例,对象从中获益,取得其行为。

    类定义的方法:就是那些应用于类和它的事例的性质。

    如果需要区分上面两种情况,那么我们就把适用于某一个特定对象的方法叫做实例方法,而把那些适用于整个类的方法叫做类的方

    法。

    你可以把实例方法看做一个由特定对象执行的某种动作,

    一个对象就是一个引用……

    一个类只是一个包

       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”);

  • 相关阅读:
    Python文件File方法
    python的slice notation的特殊用法
    函数
    字典
    python 笔记7
    列表解析与生成器
    [CenOS7][Mac] MAC环境中dubbo连接zookeeper超时
    [JAVA][Thread] 实现Runnable接口和继承Thread类创建线程哪种方式更好?
    [Java] String字符常量类型作为参数传递的一些问题
    [JAVA]hashCode()和identityHashCode()的区别
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351347.html
Copyright © 2020-2023  润新知