V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
older
V2EX  ›  问与答

不明白实例化对象和静态对象,实例化方法和静态方法到底有什么区别

  •  
  •   older · 2014-01-16 10:42:15 +08:00 · 3193 次点击
    这是一个创建于 3959 天前的主题,其中的信息可能已经有所发展或是发生改变。
    5 条回复    1970-01-01 08:00:00 +08:00
    min
        1
    min  
       2014-01-16 10:48:13 +08:00
    静态不应该叫对象了

    static -> type
    instance -> object

    static method -> method of type
    instance method -> method of object

    type -> one copy per application at runtime
    object -> multiple objects per application at runtime
    66beta
        2
    66beta  
       2014-01-16 10:54:13 +08:00
    实例化之后才叫对象,至少PHP跟C++是这样说的

    从调用方式也可以区别:
    对象->成员
    对象::静态成员
    类::静态成员

    没写错吧~~
    c742435
        3
    c742435  
       2014-01-16 11:02:17 +08:00
    as程序猿表示,静态方法和静态对象都是类对象的方法和属性。实例化方法是普通new出来的对象上的方法。
    java应该是差不多的。
    cxe2v
        4
    cxe2v  
       2014-01-16 11:06:35 +08:00
    最简单的告诉你,静态方法不用new就可以用,实例方法必须new了才能调用
    arbipher
        5
    arbipher  
       2014-01-16 13:44:23 +08:00
    实例化对象,是根据一个抽象的模型(这里假定是Class,JavaScript这种基于prototype的比较复杂),构造出来的一个具体的对象。

    什么是模型(Class)?
    比如,
    苹果。当我们谈论苹果时,指的是一种可红可绿可食用,能赶走医生的水果。
    另一个例子,
    人类。当我们谈论人时,指的是“没有羽毛的两足行走”的动物物种。

    什么是实例(instance)
    你从门口的水果摊上买个三个苹果,命名为甲、乙、丙。甲是这个苹果,乙是那个苹果,丙是另外一个苹果。甲、乙、丙,都是苹果的实例。有实例就有自我(id),甲就是甲。你把甲削皮,还吭了一口。
    另一个例子,
    你是一个人。我也是一个人。你发帖提问,我回答。

    什么是实例方法(instant method)
    必须是实例才能使用的方法。你可以在现实中给苹果甲削皮(调用实例的实例方法),你也可以在想象中给一个苹果削皮(定义一个类的对象可以使用的实例方法),但是你不可能在现实中给苹果这个概念削皮。现实中,只要你削皮了,削皮的对象就是一个具体的苹果。
    削皮就是实例方法,你削皮的那个苹果就是实例。

    静态的问题,我想一下应该怎么解释。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1184 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:32 · PVG 02:32 · LAX 10:32 · JFK 13:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.