实例和对象有什么区别?

问题描述 投票:69回答:20

实例和对象有什么区别?是否存在差异?

oop object instance
20个回答
44
投票

实例是内存中的对象。基本上,您创建对象并在使用它们时将其实例化。

这是关于Classes Vs Objects Vs Instances的一个很好的写作,他正在谈论Java,但它适用于所有OO。

http://alfredjava.wordpress.com/2008/07/08/class-vs-object-vs-instance/


2
投票

Object - 具有自己的状态并访问其类所定义的所有行为的类的实例。

实例 - 引用该特定类的内存区域。


1
投票

每个对象都被认为是它的类的一个实例,但是每个类的实例都有自己的值,每个属性的intances共享属性名称和操作与它们的类的内容,但是一个对象包含对他的类的隐式引用


1
投票

如果我们看到对象和实例对象的定义 -

在运行时为类成员分配的内存称为对象或对象是Class的实例。

让我们看看实例的定义 -

在运行时为Any分配的内存称为实例变量。

现在通过Malloc,Calloc,Realloc等理解C中发生的任何运行时内存分配的含义:

struct p
{

}
p *t1
t1=(p) malloc(sizeof(p))

所以这里我们也分配运行时内存分配,但是这里我们称之为实例,因此t1是实例,我们不能将t1称为对象,因此每个对象都是Class的实例,但每个Instance都不是Object。


1
投票

类:一类是蓝图。对象:它是类的副本。实例:它是一个用于保存对象内存地址的变量。

一个非常基本的分析例子

Class House - >房子的蓝图。但你不能生活在蓝图中。你需要一个物理的房子,它是居住的类的实例。即,对象的实际地址是实例。实例代表对象。


1
投票

Java是一种面向对象的编程语言(OOP)。这意味着,除了基本类型之外,Java中的所有内容都是一个对象。

现在,Java对象与现实世界对象类似。例如,我们可以用Java创建一个car对象,它将具有当前速度和颜色等属性;和行为如:加速和停车。

那是对象。

enter image description here

另一方面,实例是该对象的唯一初始化副本,看起来像Car car = new Car()

请查看以了解有关Java classes and object的更多信息


1
投票

快速简单的答案

  • 类:规范,对象的蓝图
  • 对象:内存中类的物理存在
  • 实例:对象的唯一副本(相同结构,不同数据)

0
投票

一个对象可以是一个类,比如你有一个叫做篮球的类。

但是你想拥有多个篮球,所以在你的代码中你创造了超过1个篮球

说篮球1和篮球2。然后运行您的应用程序。你现在有2个对象篮球实例。


0
投票

一旦实例化了一个类(使用new),该实例化的东西就变成了一个对象。对象是可以遵循面向对象编程的封装,多态,抽象原则以及程序与之交互以消耗类中定义的实例成员的真实对象。对象包含实例成员(非静态成员)。

因此,类的实例是一个对象。当你指的是它出生地的起源时,使用“实例”这个词,如果你说“类的实例”与“类的对象”相比,它会更清晰(虽然后者可以用来)。

还可以在嵌套类--https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html上阅读此java文档的“内部类”部分


0
投票

关于objectinstance之间的区别,我认为没有任何共识。

在我看来,人们在论文,博客文章,书籍或对话中几乎可以互换地改变它。

至于我,我看到它的方式是,一个对象是内存中的通用和活动实体,由它所使用的语言指定。就像Object中的Java类一样。我们不关心它的类型或与之相关的任何其他东西,无论它是否由容器管理。

instanceobject但与类型有关,如this method accepts Foo instancesyou can not put Animal instances in an instance of a List of Vehicles

例如,objects有locks与他们相关,而不是instances,而instances有方法。 objects是垃圾收集,而不是instances。

但正如我所说,这只是我看到它的方式,而且我认为我们之间没有任何组织可以参考它们之间的标准定义,而且每个人的理解/定义都会略有不同(当然在限制范围内) 。


0
投票

对象是一般的东西,例如,在数学中采用线性函数

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

对象<<<实例

一般<<<具体

没有更多的东西


47
投票

应该消耗太多的时间,没有真正的重大差异。可能有一些奇特的语言,有些人可能会占用很多空间来写,但最终,就编码人员,开发人员,程序员,架构师而言,一个类的实例和一个对象意味着相同的东西,通常可以互换使用。在我的职业生涯中,我从来没有见过任何会挑剔的人,花半个小时试图指出差异,因为实际上没有。时间可以更好地用于其他开发工作。

更新关于Swift,这就是发明Swift的Apple所喜欢的:

传统上,类的实例称为对象。但是,Swift类和结构在功能上比在其他语言中更接近,本章的大部分内容描述了可以应用于类或结构类型的实例的功能。因此,使用了更通用的术语实例。


-2
投票

对象引用类,实例引用对象。换句话说,实例是具有特定值的对象的副本。


24
投票

好问题。

我会用最简单的方式解释一下:假设你的篮子里有5个苹果。这些苹果中的每一个都是Apple类型的对象,其具有一些特征(即大的,圆形的,在树上生长)。

在编程术语中,您可以拥有一个名为Apple的类,其变量大小为:大,形状:圆形,栖息地:在树上生长。要在你的篮子里放5个苹果,你需要实例化5个苹果。 Apple apple1, Apple apple2, Apple apple3 etc...

或者:对象是某些东西的定义,实例是物理的东西。

这有意义吗?


9
投票

实例:实例意味着只创建一个引用(副本)。

object:表示当使用new运算符将内存位置与对象关联时(是类的运行时实体)。

简单来说,Instance指的是特定时间对象的副本,而object指的是类的内存地址。


8
投票

假设你正在建造一些椅子。

显示如何构建椅子并将其组合在一起的图表对应于软件类。

假设您根据该图中的模式构建了五把椅子。同样,您可以根据类中的模式构造五个软件对象。

每把椅子都有一个唯一的号码,烧在座位的底部,以识别每个特定的椅子。椅子3是椅子对象的一个​​实例。同样,存储器位置3可以包含软件对象的一个​​实例。

因此,实例(主席3)是对象(椅子)的单个唯一,特定表示。


6
投票

宾语:

它是一个通用术语,基本上它是一个包含状态(变量)和行为(方法)的软件包

类:

对象实例的蓝色打印(模板) - 它是一个唯一的对象事物,例如你创建一个对象,这意味着你创建了两个实例

让我举个例子

Class student()
{
   private string firstName;
  public student(string fname)
  {
    firstName=fname;
  }
  Public string GetFirstName()
  {
    return firstName;
  }
}

对象示例:

学生s1 =新生(“马丁”);学生s2 =新生(“Kumar”);

s1,s2具有类Student的对象

例如:

s1和s2是对象学生的实例,两者是唯一的。

它也可以作为参考。

基本上s1和s2是分配了一个对象的变量


5
投票

对象和实例大多相同;但有一个非常小的差异。如果Car是一个类,3个Cars是3个不同的对象。所有这些对象都是实例。所以这三辆车是来自Car级别的实物。

但“实例”这个词也可以表示“结构实例”。但对象仅适用于类。

所有对象都是实例。并非所有实例都必须是对象。实例可以是“结构实例”或“对象”。我希望这能让你明白这一点。


4
投票

对象是一个构造,一个静态的东西,具有某些特征和特征,例如属性和方法,它可以是任何东西(字符串,用户控件等)

实例是该对象的唯一副本,您可以使用它并执行操作。

想象一下像电脑这样的产品。

xw6400工作站是一个对象

您的xw6400工作站(或您的WIFE的xw6400工作站)是xw6400工作站对象的一个​​实例


2
投票

实例是对象的特定表示。对象是通用的,而实例是在内存中创建的单个对象。通常,实例将为其属性分配值,以将其与对象类型的其他实例区分开来。

© www.soinside.com 2019 - 2024. All rights reserved.