代码之家  ›  专栏  ›  技术社区  ›  streetparade

实例和对象有什么区别?

  •  65
  • streetparade  · 技术社区  · 15 年前

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

    17 回复  |  直到 15 年前
        1
  •  63
  •   Smart Manoj AlexP    4 年前

    实例和对象来自 Object Oriented Programming .

    对于一些编程语言,如java、C++和SimalTalk,重要的是描述和理解代码。在结构化编程中使用的其他语言中,这个概念并不存在。

    一个类和一个对象的实例意味着相同的东西,并且经常可以互换使用 . 在我的职业生涯中,我从来没有遇到过任何人会挑三拣四,花半个小时试图指出其中的区别,因为根本没有区别。时间可以更好地花在其他开发工作上。

    更新

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

        2
  •  20
  •   Yuval Karmi    15 年前

    我会用最简单的方式解释:

    在编程术语中,可以有一个名为Apple的类,它包含变量size:big, shape:round, habitat:grows on 树。要在篮子里放5个苹果,你需要 5个苹果。 Apple apple1, Apple apple2, Apple apple3 etc...

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

    这有道理吗?

        3
  •  12
  •   karthik reddy    11 年前

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

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

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

        4
  •  8
  •   Brian Showalter    5 年前

    假设你在做椅子。

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

    因此,一个实例(椅子3)是椅子图案的一个独特的、具体的表现形式。

        5
  •  8
  •   PG328    5 年前

    对象和实例基本相同;但是有一个非常小的区别。 Car 是一个班级,3 小型车 小型车 班级。

    所有对象都是实例。 并非所有实例都必须是对象。实例可以是“结构实例”或“对象”。 我希望这能让你清楚地认识到区别。

        6
  •  7
  •   Shajo Durai Amuthan.H    10 年前

    对象 :

    等级 :

    对象的蓝图(模板) 实例这是一个独特的对象例如你创建了一个对象两次这意味着你已经创建了两个实例

    让我举个例子

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

    对象示例 :

    学生s2=新学生(“Kumar”);

    实例 :

    s1和s2是对象student的实例 这两个是 独特的

    它可以称为 参考 也。

    基本上,s1和s2是分配给对象的变量

        7
  •  4
  •   Luís Cruz    8 年前

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

    想象一个产品像一台电脑。

    xw6400工作站是一个对象

    您的xw6400工作站(或您妻子的xw6400工作站)是xw6400 workstation对象的实例

        8
  •  2
  •   Syed Ekram Uddin JRonald Moreno    6 年前

    快速简单的回答

    • 等级 对象的说明、蓝图
    • 对象 类在内存中的物理存在
    • : 对象的唯一副本(相同的结构,不同的数据)
        9
  •  2
  •   heug    5 年前

    这个答案可能被认为是老生常谈,但担心实例和对象之间的差异已经是老生常谈了。

    我认为最好用javascript来描述:

    let obj= {"poo":1} 
    // "obj" is an object
    

    诗句

    Class Trash {
        constructor(){this.poo = 1;}
    }
    
    let i = new Trash();
    // "i" is an instance
    
        10
  •  1
  •   TLiebe    15 年前

    实例是对象的特定表示。对象是泛型对象,而实例是在内存中创建的单个对象。通常,一个实例的属性会被赋予值,使其与对象类型的其他实例不同。

        11
  •  1
  •   Mardoz    10 年前

    如果我们看到Object和Instance Object的定义-

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

    让我们看看实例的定义-

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

    现在理解 任何 运行时内存分配在C中也通过Malloc、Calloc、Realloc进行,例如:

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

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

        12
  •  1
  •   prathipati s    10 年前

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

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

        13
  •  1
  •   Praveen Tiwari    6 年前

    因此类的实例是一个对象。instance这个词是指类的起源,如果说类的instance比object更清楚(尽管后者可以用来表示)。

    也可以阅读本java文档中有关嵌套类的“内部类”部分- https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html

        14
  •  1
  •   Rehan Ali Khan    5 年前

    // Design Class
    class HumanClass {
        var name:String
        init(name:String) {
            self.name = name
        }
    }
    
    var humanClassObject1 = HumanClass(name: "Rehan") 
    

    现在左侧,即:“humanClassObject1”是对象,右侧,即:HumanClass(名称:“Rehan”)是该对象的实例。

    var humanClassObject2 = HumanClass(name: "Ahmad") // again object on left and it's instance on the right.
    

    所以基本上,instance包含该对象的特定值,而objects包含内存位置(在运行时)。

    记住著名的语句“objectreference not set to an instance of a object”,这意味着未初始化的对象没有任何实例。 在某些编程语言(如swift)中,编译器甚至不允许您设计一个无法初始化其所有成员的类(变量如:name,age e.t.c),但在某些语言中,您可以这样做:

    // Design Class
    class HumanClass {
        var name:String // See we don't have any way to initialise name property.
    }
    

    并且只有在您尝试执行以下操作时,才会在运行时显示错误:

    var myClass = HumanClass()
    print(myClass.name) // will give, object reference not set to an instance of the object.
    

    “实例” 当我试图解释这上面!

        15
  •  1
  •   Srishti Gupta    4 年前

    当一个变量被声明为自定义类型(类)时,只会创建一个称为对象的引用。在这个阶段,没有内存分配给这个 对象 . 它的作用就像一个指针(指向将来存储对象的位置)。这个过程叫做“声明”。

    Employee e; // e is an object
    

    new 运算符,它将堆中的内存分配给此对象,并返回对已分配内存的引用。这个物体现在被称为 实例 . 这个过程叫做“实例化”。

    Employee e = new Employee(); // e is an instance
    

    Oracle's documentation on Java :

        16
  •  0
  •   user2750565    11 年前

    每个对象都被称为其类的实例,但该类的每个实例对于每个属性都有自己的值 intantes与类的intantes共享属性名和操作,但对象包含对其on类的隐式引用

        17
  •  0
  •   Sindhu    8 年前

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

    一个非常基本的分析例子

    教室-->房子的蓝图。但你不能活在蓝图里。你需要一个实际的房子,这是类的实例居住。i、 例如,对象的实际地址是实例。实例表示对象。

        18
  •  0
  •   Johnny    6 年前

    现在,Java对象类似于真实世界的对象。例如,我们可以在Java中创建一个car对象,它将具有诸如current speed和color之类的属性;以及像这样的行为:加速和停车。

    那是 对象 .

    enter image description here

    Car car = new Car() .

    查看以了解更多有关 Java classes and object

        19
  •  0
  •   machineman    4 年前

    您需要了解三件事:类、对象和实例。

    等级 :类是将从中创建对象的蓝图代码

    对象

    实例

    例子

    假设我们有这样一个类(这是您的蓝图代码)

    public class Animal
    {
    //some fields and methods     
    }
    

    我们创建一个这样的对象

    Animal a = new Animal();
    Animal b = a;
    Animal c = a;
    Animal d = b;
    

    这里有多少个对象和实例?

    回答 :只有1个对象,但有4个实例。

    在第一行(动物a=新动物();),我们用new操作符从类Animal创建了一个对象。那东西在你的公羊的某处。对那个物体的引用在“a”中。 我们现在有一个对象和一个实例。

    现在在下一行,我们用a来指定b。这里不复制对象,但是来自“a”的对象的引用也存储在“b”中。因此,我们有两个实例,“a和b”。

    最后,我们有4个实例“a,b,c,d”,它们是用new操作符创建的单个对象。

    (更多信息,请阅读参考类型在C中的工作原理。我希望你能理解我的语言)

        20
  •  -1
  •   Koray Tugay    6 年前

    关于 object 和一个 instance ,我认为没有任何共识。

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

    在我看来,对象是内存中的一个通用的、活动的实体,由它所使用的语言指定。就像那个 Object Java . 无论它是否由容器管理,我们都不太关心它的类型或与之相关的任何其他内容。

    实例 是一个 对象 但与一种类型有关,如 this method accepts Foo instances ,或 you can not put Animal instances in an instance of a List of Vehicles .

    对象 例如,我们有 locks 与他们有关,而不是 实例 实例 我们有方法。 objects 是垃圾收集的,不是吗 s。

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

        21
  •  -1
  •   Chyanit Singh    6 年前

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

    对象<<&书信电报;实例

    常规<<&书信电报;具体

    没有别的了

        22
  •  -2
  •   HexBlit    15 年前

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

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

        23
  •  -3
  •   Karamjit Singh Sehdev    8 年前