2010-05-21 61 views
54

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

+9

也许你可以从众所周知的错误消息“Object reference not set to _instance of object_。”中推断出来。 : - > – herzmeister 2010-05-21 21:17:18

+0

根据JVM规范:“一个对象是一个动态分配的类实例或一个数组。”http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html – yfklon 2015-07-04 07:42:26

+0

[ StackOverFlow](http://stackoverflow.com/a/42753129/4156229)我刚刚给出了对象和实例之间的区别的简要说明,我希望它有帮助 – 2017-03-12 21:31:11

回答

4

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

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

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

的xw6400工作站提供的对象

您的xw6400工作站提供,(或者你妻子的xw6400工作站提供)是

0

的对象可以是一个类的xw6400工作站提供对象的实例,说你有一个叫做类篮球。

,但你希望拥有多个篮球所以在你的代码中创建超过1个篮球

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

+0

这将意味着一个对象是一个类构造函数的实例吗? – streetparade 2010-05-21 20:47:35

+0

想象一个蓝图这样的对象。说我们有篮球的蓝图,那就是班级。当篮球被创造并现在存在时,这意味着我们有1个篮球对象。如果我们从对象(蓝图)建立另一个篮球。我们现在有两场篮球比赛。总是只有一个对象,但我们可以创建该对象的许多实例。 – Darxval 2010-05-21 21:08:53

2

实例是对象的特定表示。一个对象是一个通用的东西,而一个实例是在内存中创建的单个对象。通常情况下,实例将赋予其属性的值,以将其与该对象类型的其他实例区分开来。

28

优秀的问题。

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

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

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

这是否有意义?

+27

它没有。 :)“对象是一些东西的定义”这里你称之为对象的是类。 – 2016-02-10 09:50:35

+0

Downvote,因为我同意上面的评论。 – khituras 2018-03-01 09:08:10

31

没有真正的显着差异,应该消耗太多的时间。可能有一些花哨的语言,有些人可能会占用大量空间来撰写,但在一天结束时,就编码人员,开发人员,程序员,架构师而言,这是一个类和一个实例对象意味着相同的东西,并且经常可以互换使用。我从未遇到过职业生涯中会挑剔的人,并花了半个小时试图指出这些差异,因为实际上没有。时间可以更好地花在其他开发工作上。

UPDATE至于斯威夫特,这是苹果谁发明斯威夫特喜欢:

一个类的实例是传统上被称为一个对象。然而, 斯威夫特类和结构在功能上比其他 语言更接近,而很多本章介绍 可以应用到任何一个类或结构类型的实例功能。因为 这个,使用更通用的术语实例。

4

比方说,你正在构建一些椅子。

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

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

每个椅子具有烧入座,以确定每个特定椅子的底部的唯一编号。椅子3是椅子对象的一个​​实例。同样,内存位置3可以包含一个软件对象的实例。

所以,一个实例(椅子3)是一个对象(椅子)的单个唯一的,特定表示。

3

对象

这是一个generice项基本上它是有状态(变量)和行为(方法)

甲级软件捆绑:

蓝图(模板)为对象 实例是,例如,你创建一个对象的唯一对象的事情是什么意思是哟已经创建了两个实例

两次

让我举一个例子

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

对象例如

学生S1 =新的学生( “马丁”); 学生s2 =新生(“库马尔”);

的S1,S2被具有类学生的对象

实例

S1和S2是对象学生 的情况下,两个是独特

它可以被称为参考也。

基本上s1和s2是分配对象

1

每个对象说是它的类的一个实例,但类的每个实例变量都有自己的每个值属性 intances股的属性名称和使用类的实例进行操作,但对象包含对其类的隐式引用

8

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

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

简而言之,实例是指在特定时间对象的副本,而对象是指类的内存地址。

+1

说一个实例是一个对象的引用真的为我清理了一些东西。 – 2017-05-31 22:36:21

1

如果我们看到对象和背景对象的定义 - 分配给类在运行时的成员

内存被称为对象或对象是类的实例。

让我们来看看实例的定义 -

内存分配任何在运行时被称为实例变量。

现在明白的的含义,任何C运行时内存分配的发生也通过malloc的,释放calloc,realloc的这样:

struct p 
{ 

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

所以在这里我们也正在分配运行时的内存分配,但在这里我们所说的作为实例所以t1是实例在这里,我们不能说t1作为对象所以每个对象都是类的实例,但每个实例都不是对象。

2

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

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

5

对象和实例大部分是相同的;但差别很小。 如果“汽车”是一类; 3辆车是3种不同的物体。所有这些对象都是实例。所以这3辆车是来自“汽车”类的物品。

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

所有对象都是实例。 所有实例可能不是对象。实例可以是“结构实例”或“对象”。

0

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

一个非常基本的分析示例

类别的房子 - >蓝图的房子。但是你不能生活在蓝图上。你需要一个物理的房子,它是这个类的实例,也就是说,对象的实际地址是实例。实例表示对象。

-2

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

相关问题