实例和对象有什么区别?

127

实例和对象之间有什么区别? 是否有区别?


12
也许你可以从众所周知的错误信息“Object reference not set to an instance of an object.”中推断出:-> - herzmeister
1
从JVM规范中:“对象可以是动态分配的类实例或数组。” http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html - yfklon
1
我刚刚简要描述了对象和实例之间的区别,希望能有所帮助。StackOverFlow - Pushkarraj Pujari
25个回答

0

我认为如果我们考虑除了面向对象编程(OOP)之外的其他方法(主要是假设术语并不总是被使用,就像许多C项目一样,仍然应用了对象的概念),以下定义将是最有意义的:

定义了对象遵循的接口。

对象是不同字段的聚合体。(它不必“物理”存在,但可以存在)。

所有相同对象可以以相同的方式使用,由定义。

实例对象的唯一实现。

由于许多OOP语言使用静态类型,因此对象描述通常已经是类的一部分。因此,在谈论C/C++中的对象时,通常指的是对象实例。 在没有静态类型的语言(如JavaScript)中,对象可以具有不同的字段,同时仍然共享相同的


-1
关于“对象(object)”和“实例(instance)”之间的区别,我认为并没有任何共识。
在论文、博客、书籍或对话中,人们似乎基本上可以互换使用这两个术语。
就我而言,我认为一个对象是内存中一种通用的活动实体,由它所用的语言指定。就像Java中的Object类一样。我们不太关心它的类型或与它相关的任何其他内容,无论它是否由容器管理。
一个实例是一个对象,但是与一种类型相关联,例如“此方法接受Foo实例”或“您不能将Animal实例放入Vehicle列表的实例中”。
例如,对象具有与锁相关联,而实例具有方法。对象被垃圾收集,而实例则没有。

但正如我所说,这只是我的看法,我认为没有任何组织可以提供一个标准的定义,区分它们,每个人都会有他们稍微不同的理解/定义(当然在一定的限制内)。


-2

对象是一个通用的东西,例如,在数学中取一个线性函数

ax+b是一个对象,而3x+2是该对象的一个实例

对象<<< 实例

一般<<< 特定

没有更多内容了


-3
一个对象可以是一个类,比如你有一个叫做篮球的类。
但是你想要有多个篮球,所以在你的代码中创建了不止一个篮球。
比如篮球1和篮球2。然后你运行你的应用程序。
现在你有了两个篮球对象的实例。

这意味着一个对象是一个类构造函数的实例吗? - streetparade
把对象想象成蓝图。比如我们有一个篮球的蓝图,那就是类。当篮球被创建并制造出来后,它现在存在了,这意味着我们有了一个篮球对象的实例。如果我们从这个对象(蓝图)中再建造一个篮球,那么我们现在就有了两个篮球对象的实例。始终只有一个对象,但我们可以制造许多该对象的实例。 - HexBlit
@Darxval 那什么是类? - Chyanit Singh

-4

对象指的是类,实例指的是对象。换句话说,实例是一个带有特定值的对象副本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接