entonces te refieres a objeto == clase? ¿O te refieres a la clase cargada y se convierte en objeto y el objeto instanciado para convertirse en instancia? ¿No es confusa la respuesta?
p_champ
Piense en la clase como una definición. Cuando crea una instancia de la clase, tiene el objeto que luego puede usarse. Ese objeto está representado físicamente en la memoria.
Dustin Laine
@Dustin Laine la diferencia aún no está clara. ¿Me puedes ayudar?
Pie
@DustinLaine La pregunta plantea la diferencia entre 'instancia' y 'objeto'. Sin embargo, en esta respuesta, lo que se ha explicado es el proceso de 'instanciación' de una clase para obtener 'objeto'. Tu publicación y comentario no coinciden. En la publicación, se menciona que una 'instancia' es un objeto en la memoria. Sin embargo, en el comentario, se menciona que después de crear una instancia de la clase, obtiene el 'objeto', que está representado en la memoria. Esto es un poco ambiguo.
Para algunos lenguajes de programación como Java, C ++ y Smalltalk, es importante describir y comprender el código. En otros lenguajes que se utilizan en Programación Estructurada este concepto no existe.
Esta es la vista de la programación estructural. No existe una diferencia significativa real que deba consumir demasiado tiempo. Puede haber algún lenguaje elegante sobre el que algunas personas pueden ocupar muchos espacios para escribir, pero al final del día, en lo que respecta a un codificador, desarrollador, programador, arquitecto, una instancia de una clase y un objeto significa lo mismo y, a menudo, se puede usar indistintamente. Nunca he conocido a nadie en mi carrera que sea quisquilloso y pase media hora tratando de señalar las diferencias, porque realmente no hay ninguna. Es mejor invertir el tiempo en otros esfuerzos de desarrollo.
ACTUALIZACIÓN Con respecto a Swift, esto es lo que prefiere Apple, que inventó Swift:
Una instancia de una clase se conoce tradicionalmente como objeto. Sin embargo, las clases y estructuras de Swift tienen una funcionalidad mucho más cercana que en otros lenguajes, y gran parte de este capítulo describe la funcionalidad que se puede aplicar a instancias de una clase o de un tipo de estructura. Debido a esto, se utiliza el término instancia más general.
Lo explicaré de la manera más simple posible: digamos que tiene 5 manzanas en su canasta. Cada una de esas manzanas es un objeto de tipo Apple, que tiene algunas características (es decir, grande, redonda, crece en los árboles).
En términos de programación, puede tener una clase llamada Apple, que tiene variables tamaño: grande, forma: redonda, hábitat: crece en árboles. Para tener 5 manzanas en su canasta, necesita instanciar 5 manzanas. Apple apple1, Apple apple2, Apple apple3 etc....
Alternativamente: los objetos son las definiciones de algo, las instancias son las cosas físicas.
No es así. :) "Los objetos son las definiciones de algo" Lo que llamas objetos aquí son clases.
T-Gergely
11
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) mediante el uso del nuevo operador.
En palabras simples, Instance se refiere a la copia del objeto en un momento particular, mientras que objeto se refiere a la dirección de memoria de la clase.
decir que una instancia es una referencia a un objeto realmente me aclara las cosas.
John C
2
@JohnC No debería, porque no es correcto. Un objeto es una instancia de una clase. Eso es todo al respecto.
Marqués de Lorne
8
Digamos que estás construyendo algunas sillas.
El diagrama que muestra cómo construir una silla y armarla corresponde a una clase de software.
Digamos que construye cinco sillas de acuerdo con el patrón de ese diagrama. Del mismo modo, puede 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 un ejemplo de un patrón de silla. Asimismo, la ubicación de memoria 3 puede contener una instancia de un patrón de software.
Entonces, una instancia (silla 3) es una única manifestación única y específica de un patrón de silla.
Un objeto es una instancia de una clase. Una instancia no es una instancia de un objeto. La respuesta no tiene sentido.
Marqués de Lorne
1
Vaya, después de nueve años alguien finalmente señaló la falla en mi explicación. ¡Gracias! ¿Mejor ahora?
Brian Showalter
7
Objeto :
Es un término genérico básicamente es un paquete de software que tiene estado (variables) y comportamiento (métodos)
Clase :
Un plano (plantilla) para una instancia de objeto: es una cosa de objeto único, por ejemplo, crea un objeto dos veces, ¿qué significa eso si ha creado dos instancias?
Déjame dar un ejemplo
Class student()
{
private string firstName;
public student(string fname)
{
firstName=fname;
}
Public string GetFirstName()
{
return firstName;
}
}
Ejemplo de objeto :
Estudiante s1 = nuevo estudiante ("Martín"); Estudiante s2 = nuevo estudiante ("Kumar");
Los s1, s2 tienen objeto de clase Student
Ejemplo :
s1 y s2 son instancias de objeto student los dos son únicos .
se puede llamar como referencia .
Básicamente, s1 y s2 son variables a las que se les asigna un objeto.
Los objetos y las instancias son en su mayoría iguales; pero hay una diferencia muy pequeña. Si Cares una clase, 3 Cars son 3 objetos diferentes. Todos estos objetos son instancias. Entonces estos 3 autos son objetos de instancias de la Carclase.
Pero la palabra "instancia" también puede significar "instancia de estructura". Pero el objeto es solo para clases.
Todos los objetos son instancias. No todas las instancias deben ser objetos. Las instancias pueden ser "instancias de estructura" u "objetos". Espero que esto le aclare la diferencia.
Un objeto es una construcción, algo estático que tiene ciertas características y rasgos, como propiedades y métodos, puede ser cualquier cosa (una cadena, un control de usuario, etc.)
Una instancia es una copia única de ese objeto que puede usar y hacer cosas.
Imagina un producto como una computadora.
LA estación de trabajo xw6400 es un objeto
SU estación de trabajo xw6400 (o la estación de trabajo xw6400 de SU ESPOSA) es una instancia del objeto de estación de trabajo xw6400
Una instancia es una representación específica de un objeto. Un objeto es algo genérico, mientras que una instancia es un objeto único 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.
Si vemos la definición de objeto y objeto de instancia -
La memoria asignada para el miembro de la clase en tiempo de ejecución se llama objeto o el objeto es la instancia de Class.
Veamos la Definición de instancia -
Memoria asignada para cualquier en tiempo de ejecución se llama como variable de instancia.
Ahora comprenda el significado de cualquier asignación de memoria en tiempo de ejecución que ocurre en C también a través de Malloc, Calloc, Realloc como:
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í llamamos como instancia, por lo que t1 es una instancia, aquí no podemos decir t1 como objeto, por lo que cada objeto es la instancia de la clase, pero cada instancia no es un objeto.
No puedo creerlo, excepto por un tipo que nadie ha usado el código para explicar esto, ¡déjame intentarlo también!
// Design Class
class HumanClass {
var name:String
init(name:String) {
self.name = name
}
}
var humanClassObject1 = HumanClass(name: "Rehan")
Ahora el lado izquierdo es decir: "humanClassObject1" es el objeto y el lado derecho es decir: HumanClass (nombre: "Rehan") es la instancia de este objeto.
var humanClassObject2 = HumanClass(name: "Ahmad") // again object on left and it's instance on the right.
Entonces, básicamente, la instancia contiene los valores específicos para ese objeto y los objetos contienen la ubicación de la memoria (en tiempo de ejecución).
Recuerde la famosa declaración "referencia de objeto no establecida en una instancia de un objeto", esto significa que los objetos no inicializados no tienen ninguna instancia. En algunos lenguajes de programación como Swift, el compilador no le permitirá ni siquiera diseñar una clase que no tenga ninguna forma de inicializar todos sus miembros (variable, por ejemplo: nombre, edad, etc.), pero en algunos lenguajes se le permite hacer esto:
// Design Class
class HumanClass {
var name:String // See we don't have any way to initialise name property.
}
Y el error solo se mostrará en tiempo de ejecución cuando intente hacer algo como esto:
var myClass = HumanClass()
print(myClass.name) // will give, object reference not set to an instance of the object.
¡Este error indica que los valores específicos (para variables \ propiedad) es la "INSTANCIA" como intenté explicar esto arriba! Y el objeto, es decir, "myClass" contiene la ubicación de la memoria (en tiempo de ejecución).
Cuando se declara una variable de un tipo personalizado (clase), solo se crea una referencia, que se denomina objeto. En esta etapa, no se asigna memoria a este objeto . Actúa simplemente como un puntero (a la ubicación donde se almacenará el objeto en el futuro). Este proceso se llama "Declaración".
Employee e; // e is an object
Por otro lado, cuando se declara una variable de tipo personalizado utilizando el newoperador, el cual asigna memoria en montón a este objeto y devuelve la referencia a la memoria asignada. Este objeto que ahora se denomina instancia . Este proceso se llama 'Creación de instancias'.
Employee e = new Employee(); // e is an instance
Por otro lado, en algunos lenguajes como Java, un objeto es equivalente a una instancia, como se evidencia en la línea escrita en la documentación de Oracle sobre Java :
Nota: La frase "instanciar una clase" significa lo mismo que "crear un objeto". Cuando crea un objeto, está creando una "instancia" de una clase, por lo tanto "instanciando" una clase.
cada objeto se dice que es una instancia de su clase, pero cada instancia de la clase tiene su propio valor para cada atributo intances comparte el nombre del atributo y la operación con sus intances de clase, pero un objeto contiene una referencia implícita a su clase on
Clase: Una clase es un modelo. Objeto: Es la copia de la clase. Instancia: Es una variable que se utiliza para contener la dirección de memoria del objeto.
Un ejemplo analítico muy básico
Class House -> Plano de la casa. Pero no puedes vivir en el plano 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 la instancia. Las instancias representan objetos.
La instancia se refiere al objeto, no a una variable.
Marqués de Lorne
0
Una vez que crea una instancia de una clase (usando new), esa cosa instanciada se convierte en un objeto. Un objeto es algo que puede adherirse a los principios de encapsulación, polimorfismo, abstracción de la programación orientada a objetos y la cosa real con la que un programa interactúa para consumir los miembros de instancia definidos en la clase. El objeto contiene miembros de instancia (miembros no estáticos).
Por tanto, la instancia de una clase es un objeto. La palabra 'instancia' se usa cuando te refieres al origen de donde nació, es más claro si dices 'instancia de una clase' en comparación con 'objeto de una clase' (aunque este último puede usarse).
Java es un lenguaje de programación orientado a objetos (OOP). Esto significa que todo en Java, excepto los tipos primitivos, es un objeto.
Ahora, los objetos Java son similares a los objetos del mundo real. Por ejemplo, podemos crear un objeto de automóvil en Java, que tendrá propiedades como la velocidad y el color actuales; y comportamientos como: acelerar y estacionar.
Eso es Object .
La instancia , por otro lado, es una copia inicializada de forma única de ese objeto que se parece a Car car = new Car().
Respecto a la diferencia entre an objecty aninstance , no creo que haya consenso.
Me parece que la gente lo cambia casi indistintamente, en artículos, publicaciones de blogs, libros o conversaciones.
En cuanto a mí, a mi modo de ver, un objeto es una entidad genérica y viva en la memoria, especificada por el lenguaje en el que se usa. Al igual que la Objectclase en Java. No nos importa mucho su tipo, o cualquier otra cosa asociada a él, si está gestionado por un contenedor o no.
An instancees un objectpero asociado con un tipo, como en this method accepts Foo instanceso you can not put Animal instances in an instance of
a List of Vehicles.
objects, por ejemplo, se han locksasociado con ellos, no instances, mientras que instances tienen métodos. objectsson basura recolectada, no instances.
Pero como dije, así es solo como lo veo, y no creo que haya ninguna organización a la que podamos referirnos para una definición estándar entre ellos y todos tendrán su comprensión / definiciones ligeramente diferentes (por supuesto, dentro de los límites) .
¿Eso significaría que un objeto es una instancia de un constructor de clase?
Streetparade
Piense en el objeto como en un plano. digamos que tenemos un plan para el baloncesto, esa es la clase. cuando se crea la pelota de baloncesto y se hace, ahora existe, lo que significa que tenemos 1 instancia del objeto baloncesto. si construimos otra pelota de baloncesto a partir del objeto (plano). ahora tenemos 2 instancias de baloncesto. Siempre hay un solo objeto, pero podemos crear muchas instancias de ese objeto.
Darxval
@Darxval entonces, ¿qué es una clase?
Chyanit Singh
-3
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 él.
Respuestas:
Una instancia es un objeto en la memoria. Básicamente, creas objetos y los instancias cuando los estás usando.
Aquí hay un buen artículo sobre Clases Vs Objetos Vs Instancias, está hablando de Java pero se aplica a todas las OO.
http://alfredjava.wordpress.com/2008/07/08/class-vs-object-vs-instance/
fuente
La instancia y el objeto son de programación orientada a objetos .
Para algunos lenguajes de programación como Java, C ++ y Smalltalk, es importante describir y comprender el código. En otros lenguajes que se utilizan en Programación Estructurada este concepto no existe.
Esta es la vista de la programación estructural. No existe una diferencia significativa real que deba consumir demasiado tiempo. Puede haber algún lenguaje elegante sobre el que algunas personas pueden ocupar muchos espacios para escribir, pero al final del día, en lo que respecta a un codificador, desarrollador, programador, arquitecto, una instancia de una clase y un objeto significa lo mismo y, a menudo, se puede usar indistintamente. Nunca he conocido a nadie en mi carrera que sea quisquilloso y pase media hora tratando de señalar las diferencias, porque realmente no hay ninguna. Es mejor invertir el tiempo en otros esfuerzos de desarrollo.
ACTUALIZACIÓN Con respecto a Swift, esto es lo que prefiere Apple, que inventó Swift:
fuente
Excelente pregunta.
Lo explicaré de la manera más simple posible: digamos que tiene 5 manzanas en su canasta. Cada una de esas manzanas es un objeto de tipo Apple, que tiene algunas características (es decir, grande, redonda, crece en los árboles).
En términos de programación, puede tener una clase llamada Apple, que tiene variables tamaño: grande, forma: redonda, hábitat: crece en árboles. Para tener 5 manzanas en su canasta, necesita instanciar 5 manzanas.
Apple apple1, Apple apple2, Apple apple3 etc...
.Alternativamente: los objetos son las definiciones de algo, las instancias son las cosas físicas.
¿Esto tiene sentido?
fuente
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) mediante el uso del nuevo operador.
En palabras simples, Instance se refiere a la copia del objeto en un momento particular, mientras que objeto se refiere a la dirección de memoria de la clase.
fuente
Digamos que estás construyendo algunas sillas.
El diagrama que muestra cómo construir una silla y armarla corresponde a una clase de software.
Digamos que construye cinco sillas de acuerdo con el patrón de ese diagrama. Del mismo modo, puede 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 un ejemplo de un patrón de silla. Asimismo, la ubicación de memoria 3 puede contener una instancia de un patrón de software.
Entonces, una instancia (silla 3) es una única manifestación única y específica de un patrón de silla.
fuente
Objeto :
Es un término genérico básicamente es un paquete de software que tiene estado (variables) y comportamiento (métodos)
Clase :
Un plano (plantilla) para una instancia de objeto: es una cosa de objeto único, por ejemplo, crea un objeto dos veces, ¿qué significa eso si ha creado dos instancias?
Déjame dar un ejemplo
Ejemplo de objeto :
Estudiante s1 = nuevo estudiante ("Martín"); Estudiante s2 = nuevo estudiante ("Kumar");
Los s1, s2 tienen objeto de clase Student
Ejemplo :
s1 y s2 son instancias de objeto student los dos son únicos .
se puede llamar como referencia .
Básicamente, s1 y s2 son variables a las que se les asigna un objeto.
fuente
Los objetos y las instancias son en su mayoría iguales; pero hay una diferencia muy pequeña. Si
Car
es una clase, 3Car
s son 3 objetos diferentes. Todos estos objetos son instancias. Entonces estos 3 autos son objetos de instancias de laCar
clase.Pero la palabra "instancia" también puede significar "instancia de estructura". Pero el objeto es solo para clases.
Todos los objetos son instancias. No todas las instancias deben ser objetos. Las instancias pueden ser "instancias de estructura" u "objetos". Espero que esto le aclare la diferencia.
fuente
Un objeto es una construcción, algo estático que tiene ciertas características y rasgos, como propiedades y métodos, puede ser cualquier cosa (una cadena, un control de usuario, etc.)
Una instancia es una copia única de ese objeto que puede usar y hacer cosas.
Imagina un producto como una computadora.
LA estación de trabajo xw6400 es un objeto
SU estación de trabajo xw6400 (o la estación de trabajo xw6400 de SU ESPOSA) es una instancia del objeto de estación de trabajo xw6400
fuente
Esta respuesta puede parecer trillada, pero preocuparse por las diferencias entre una instancia y un objeto ya es trivial.
Creo que está mejor representado en javascript:
versos
fuente
Una instancia es una representación específica de un objeto. Un objeto es algo genérico, mientras que una instancia es un objeto único 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.
fuente
Si vemos la definición de objeto y objeto de instancia -
La memoria asignada para el miembro de la clase en tiempo de ejecución se llama objeto o el objeto es la instancia de Class.
Veamos la Definición de instancia -
Memoria asignada para cualquier en tiempo de ejecución se llama como variable de instancia.
Ahora comprenda el significado de cualquier asignación de memoria en tiempo de ejecución que ocurre en C también a través de Malloc, Calloc, Realloc como:
Así que aquí también estamos asignando la asignación de memoria en tiempo de ejecución, pero aquí llamamos como instancia, por lo que t1 es una instancia, aquí no podemos decir t1 como objeto, por lo que cada objeto es la instancia de la clase, pero cada instancia no es un objeto.
fuente
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.
fuente
No puedo creerlo, excepto por un tipo que nadie ha usado el código para explicar esto, ¡déjame intentarlo también!
Ahora el lado izquierdo es decir: "humanClassObject1" es el objeto y el lado derecho es decir: HumanClass (nombre: "Rehan") es la instancia de este objeto.
Entonces, básicamente, la instancia contiene los valores específicos para ese objeto y los objetos contienen la ubicación de la memoria (en tiempo de ejecución).
Recuerde la famosa declaración "referencia de objeto no establecida en una instancia de un objeto", esto significa que los objetos no inicializados no tienen ninguna instancia. En algunos lenguajes de programación como Swift, el compilador no le permitirá ni siquiera diseñar una clase que no tenga ninguna forma de inicializar todos sus miembros (variable, por ejemplo: nombre, edad, etc.), pero en algunos lenguajes se le permite hacer esto:
Y el error solo se mostrará en tiempo de ejecución cuando intente hacer algo como esto:
¡Este error indica que los valores específicos (para variables \ propiedad) es la "INSTANCIA" como intenté explicar esto arriba! Y el objeto, es decir, "myClass" contiene la ubicación de la memoria (en tiempo de ejecución).
fuente
Cuando se declara una variable de un tipo personalizado (clase), solo se crea una referencia, que se denomina objeto. En esta etapa, no se asigna memoria a este objeto . Actúa simplemente como un puntero (a la ubicación donde se almacenará el objeto en el futuro). Este proceso se llama "Declaración".
Por otro lado, cuando se declara una variable de tipo personalizado utilizando el
new
operador, el cual asigna memoria en montón a este objeto y devuelve la referencia a la memoria asignada. Este objeto que ahora se denomina instancia . Este proceso se llama 'Creación de instancias'.Por otro lado, en algunos lenguajes como Java, un objeto es equivalente a una instancia, como se evidencia en la línea escrita en la documentación de Oracle sobre Java :
fuente
cada objeto se dice que es una instancia de su clase, pero cada instancia de la clase tiene su propio valor para cada atributo intances comparte el nombre del atributo y la operación con sus intances de clase, pero un objeto contiene una referencia implícita a su clase on
fuente
Clase: Una clase es un modelo. Objeto: Es la copia de la clase. Instancia: Es una variable que se utiliza para contener la dirección de memoria del objeto.
Un ejemplo analítico muy básico
Class House -> Plano de la casa. Pero no puedes vivir en el plano 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 la instancia. Las instancias representan objetos.
fuente
Una vez que crea una instancia de una clase (usando new), esa cosa instanciada se convierte en un objeto. Un objeto es algo que puede adherirse a los principios de encapsulación, polimorfismo, abstracción de la programación orientada a objetos y la cosa real con la que un programa interactúa para consumir los miembros de instancia definidos en la clase. El objeto contiene miembros de instancia (miembros no estáticos).
Por tanto, la instancia de una clase es un objeto. La palabra 'instancia' se usa cuando te refieres al origen de donde nació, es más claro si dices 'instancia de una clase' en comparación con 'objeto de una clase' (aunque este último puede usarse).
También puede leer la sección 'Clases internas' de este documento java sobre clases anidadas: https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
fuente
Java es un lenguaje de programación orientado a objetos (OOP). Esto significa que todo en Java, excepto los tipos primitivos, es un objeto.
Ahora, los objetos Java son similares a los objetos del mundo real. Por ejemplo, podemos crear un objeto de automóvil en Java, que tendrá propiedades como la velocidad y el color actuales; y comportamientos como: acelerar y estacionar.
Eso es Object .
La instancia , por otro lado, es una copia inicializada de forma única de ese objeto que se parece a
Car car = new Car()
.Échale un vistazo para obtener más información sobre las clases y los objetos de Java
fuente
Respuesta rápida y sencilla
fuente
Respecto a la diferencia entre an
object
y aninstance
, no creo que haya consenso.Me parece que la gente lo cambia casi indistintamente, en artículos, publicaciones de blogs, libros o conversaciones.
En cuanto a mí, a mi modo de ver, un objeto es una entidad genérica y viva en la memoria, especificada por el lenguaje en el que se usa. Al igual que la
Object
clase enJava
. No nos importa mucho su tipo, o cualquier otra cosa asociada a él, si está gestionado por un contenedor o no.An
instance
es unobject
pero asociado con un tipo, como enthis method accepts Foo instances
oyou can not put Animal instances in an instance of a List of Vehicles
.object
s, por ejemplo, se hanlocks
asociado con ellos, noinstance
s, mientras queinstance
s tienen métodos.objects
son basura recolectada, noinstance
s.Pero como dije, así es solo como lo veo, y no creo que haya ninguna organización a la que podamos referirnos para una definición estándar entre ellos y todos tendrán su comprensión / definiciones ligeramente diferentes (por supuesto, dentro de los límites) .
fuente
Un objeto es una cosa genérica, por ejemplo, tome una función lineal en matemáticas
ax + b es un objeto, mientras que 3x + 2 es una instancia de ese objeto
Objeto <<< Instancia
General <<< Específico
No hay nada más en esto
fuente
Un objeto puede ser una clase, digamos que tienes una clase llamada baloncesto.
pero quieres tener varias pelotas de baloncesto, por lo que en tu código creas más de una
digamos basketball1 y basketball2. Luego ejecuta su aplicación. Ahora tienes 2 instancias del objeto baloncesto.
fuente
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 él.
fuente