2010-05-21 26 views
54

¿Cuál es la diferencia entre una instancia y un objeto? ¿Hay alguna diferencia o no?¿Cuál es la diferencia entre una instancia y un objeto?

+9

Tal vez pueda deducir del conocido mensaje de error "Referencia de objeto no establecida como _instancia de un objeto_." : -> – herzmeister

+0

Según la especificación de JVM: "Un objeto es una instancia de clase asignada dinámicamente o una matriz". Http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html – yfklon

+0

[ StackOverFlow] (http://stackoverflow.com/a/42753129/4156229) Acabo de dar una breve descripción sobre la diferencia entre el objeto y la instancia. Espero que ayude –

Respuesta

35

Una instancia es un objeto en la memoria. Básicamente, usted crea objetos y los crea una instancia cuando los está usando.

Aquí hay un buen escrito en Clases Vs Objetos contra Instancias, está hablando de Java pero se aplica a todos los OO.

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

+1

Esta publicación del blog no explica nada. –

4

un objeto es una nada constructo, algo estático que tiene ciertas características y rasgos, como las propiedades y métodos, puede ser (una cadena, un control de usuario, etc)

Una instancia es una copia única de ese objeto que puede usar y hacer cosas.

Imagine un producto como una computadora.

la estación de trabajo xw6400 es un objeto

su estación de trabajo xw6400, (o estación de trabajo xw6400 de su esposa) es una instancia del objeto de estación de trabajo xw6400

0

Un objeto puede ser una clase, digamos que tiene una clase llamada baloncesto.

pero que desea tener varias pelotas de baloncesto por lo que en su código crea más de 1 baloncesto

dicen basketball1 y basketball2. Luego ejecuta su aplicación. Ahora tiene 2 instancias del objeto baloncesto.

+0

Eso significaría que un objeto es una instancia de un constructor de clase? – streetparade

+0

piensa en el objeto como un plano. digamos que tenemos un anteproyecto para el baloncesto, esa es la clase. cuando se crea el baloncesto y se hace ahora existe, entonces eso significa que tenemos 1 instancia del objeto baloncesto. si construimos otra pelota de baloncesto del objeto (plano). ahora tenemos 2 instancias del baloncesto. Siempre hay solo 1 objeto, pero podemos hacer muchas instancias de ese objeto. – Darxval

2

Una instancia es una representación específica de un objeto. Un objeto es algo genérico mientras que una instancia es un único objeto que se ha creado en la memoria. Por lo general, una instancia tendrá valores asignados a sus propiedades que la diferencian de otras instancias del tipo de objeto.

28

Excelente pregunta.

Lo explicaré de la manera más simple posible: Supongamos que tiene 5 manzanas en su cesta. Cada una de esas manzanas es un objeto de tipo Apple, que tiene algunas características (es decir, grande, redondo, crece en los árboles).

En términos de programación, puede tener una clase llamada Apple, que tiene variables de tamaño: grande, forma: redonda, hábitat: crece en los árboles. Para tener 5 manzanas en su cesta, necesita crear instancias 5 manzanas. Apple apple1, Apple apple2, Apple apple3 etc....

Alternativamente: Los objetos son las definiciones de algo, las instancias son las cosas físicas.

¿Tiene esto sentido?

+27

No es así. :) "Los objetos son las definiciones de algo" Lo que llamas objetos aquí son clases. –

+0

Votación a la baja porque estoy de acuerdo con el comentario anterior. – khituras

31

No hay una diferencia significativa que consuma demasiado tiempo. Puede haber un lenguaje elegante en el que algunas personas puedan ocupar muchos espacios para escribir, pero al final del día, en lo que respecta a un codificador, desarrollador, programador o arquitecto, una instancia de una clase y un objeto significa lo mismo y a menudo se puede usar de manera intercambiable. Nunca he conocido a nadie en mi carrera que sea quisquilloso y dedique media hora a tratar de señalar las diferencias, porque en realidad no hay ninguna.El tiempo puede invertirse mejor en otros esfuerzos de desarrollo.

ACTUALIZACIÓN Con respecto a Swift, esto es lo que prefiere de Apple que inventó Swift:

Una instancia de una clase se conoce tradicionalmente como un objeto. Sin embargo, Swift clases y estructuras están mucho más cerca en la funcionalidad que en otros idiomas, y gran parte de este capítulo describe la funcionalidad que puede aplicar a las instancias de una clase o un tipo de estructura. Como de esto, se usa el término más general instancia.

4

Digamos que estás construyendo algunas sillas.

El diagrama que muestra cómo construir una silla y montarla corresponde a una clase de software.

Digamos que construyes cinco sillas de acuerdo con el patrón en ese diagrama. Del mismo modo, podría construir cinco objetos de software de acuerdo con el patrón en una clase.

Cada silla tiene un número único grabado en la parte inferior del asiento para identificar cada silla específica. La silla 3 es una instancia de un objeto de silla. Asimismo, la ubicación de memoria 3 puede contener una instancia de un objeto de software.

Por lo tanto, una instancia (silla 3) es una única representación única y específica de un objeto (una silla).

3

objeto:

Es un término generice Básicamente se trata de un paquete de software que ha estado (las variables) y el comportamiento (métodos)

Clase:

un proyecto original (plantilla) para un objeto instancia-es una cosa de objeto único, por ejemplo, usted crea un objeto dos veces, lo que significa que ha creado dos instancias

te voy a dar un ejemplo

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

ejemplo Objeto:

Estudiante s1 = nuevo estudiante ("Martin"); Estudiante s2 = estudiante nuevo ("Kumar");

El S1, S2 están teniendo objeto de la clase Student

Instancia:

S1 y S2 son los casos de los estudiantes objeto los dos son única.

se puede llamar como referencia también.

básicamente el S1 y S2 son las variables que se asignan un objeto

1

cada objeto dice que es una instancia de su clase pero cada instancia de la clase tiene su propio valor para cada atributos intances comparte el nombre de atributo y operación con sus intances de clase pero un objeto contiene una referencia implícita a la clase

8

Instancia: instancia significa simplemente crear una referencia (copia).

objeto: significa cuando la ubicación de la memoria está asociada con el objeto (es una entidad en tiempo de ejecución de la clase) utilizando el nuevo operador.

En palabras simples, Instancia se refiere a la copia del objeto en un momento determinado mientras que el objeto se refiere a la dirección de memoria de la clase.

+1

diciendo que una instancia es una referencia a un objeto realmente me solucionó las cosas. –

1

Si vemos la definición del objeto y la instancia de objeto -

La memoria asignada para el miembro de la clase en tiempo de ejecución se llama objeto o un objeto es la instancia de la clase.

Veamos la definición de la instancia -

memoria asignada para cualquier en tiempo de ejecución se llama en la variable de instancia.

ahora entienden el significado de cualquier plazo de asignación de memoria de tiempo sucede en C también a través de Malloc, calloc, realloc tales:

struct p 
{ 

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

Así que aquí también estamos asignando la asignación de memoria en tiempo de ejecución, pero aquí que llamamos como instancia para que t1 es instancia aquí no podemos decir t1 como objeto, por lo que cada objeto es la instancia de Clase pero cada instancia no es un objeto.

2

Objeto: una instancia de una clase que tiene su propio estado y acceso a todo el comportamiento definido por su clase.

Instancia: referencia a un área de memoria para esa clase en particular.

5

Los objetos y las instancias son en su mayoría iguales; pero teniendo una diferencia muy pequeña. Si "auto" es una clase; 3 autos son 3 objetos diferentes. Todos estos objetos son instancias. Entonces estos 3 autos son objetos de instancias de la clase "auto".

Pero la palabra "instancia" también puede ser "instancias de estructura". Pero el objeto es solo para clases.

Todos los objetos son instancias. Todas las instancias pueden no ser objetos. Las instancias pueden ser "instancias de estructura" u "objetos".

0

Clase: Una clase es una impresión azul. Objeto: es la copia de la clase. Instancia: Es una variable que se usa para mantener la dirección de memoria del objeto.

Un ejemplo muy básico de análisis

Class House -> Modelo de la casa. Pero no puedes vivir en la impresión azul. Necesita una Casa física que sea la instancia de la clase en la que vivir. Es decir, la dirección real del objeto es instancia. Las instancias representan objetos.

-2

El objeto se refiere a la clase y la instancia se refiere a un objeto. En otras palabras, instancia es una copia de un objeto con valores particulares en ella.

Cuestiones relacionadas