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

2014-01-16 10:42:15 +08:00
 older
3129 次点击
所在节点    问与答
5 条回复
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
2014-01-16 10:54:13 +08:00
实例化之后才叫对象,至少PHP跟C++是这样说的

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

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

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

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

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

静态的问题,我想一下应该怎么解释。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/97208

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX