Objeto vs Instancia
La Programación Orientada a Objetos (POO) es uno de los paradigmas de programación más populares. En OOP, la atención se centra en pensar en el problema a resolver en términos de elementos del mundo real y representar el problema en términos de objetos y su comportamiento. Muchos lenguajes de programación que admiten aspectos clave de OOP (llamados lenguajes OOP) tienen la clase como herramienta de programación principal. Se denominan basados en clases. Las clases son una representación abstracta de objetos del mundo real. Las clases tienen propiedades llamadas atributos. Los atributos se implementan como variables globales y de instancia. Los métodos en las clases representan o definen el comportamiento de estas clases. Los métodos y atributos de las clases se denominan miembros de la clase. En términos muy simples, una clase es un plano o una plantilla para un objeto específico de la vida real. Entonces, un objeto es el (los) bloque (es) de memoria que se usa para almacenar la información necesaria de acuerdo con este plan. Instancia es un bloque de memoria que hace referencia a un objeto.
¿Qué es un objeto?
Los objetos son el resultado de instanciar una clase. La creación de instancias es el proceso de tomar el modelo y definir cada atributo y comportamiento para que el objeto resultante realmente represente un objeto de la vida real. El objeto es un bloque de memoria dedicado y continuo asignado para almacenar información como variables, métodos o funciones, etc. El objeto se crea con el uso del operador new, en el lenguaje de programación Java. Por ejemplo, si hay una clase llamada Coche, se puede usar lo siguiente para crear un objeto de la clase Coche.
coche nuevo();
Aquí, el nuevo operador crea un objeto Coche y se devuelve una referencia al objeto. El operador new junto con el constructor de la clase Car se usa para crear el nuevo objeto. La vida útil del objeto comienza desde la llamada a su constructor hasta el momento en que se destruye. Una vez que no se hace referencia a un objeto, el recolector de basura lo eliminará/destruirá.
¿Qué es una instancia?
Instance es un bloque de memoria que contiene la referencia a un objeto. En otras palabras, Instance mantendrá la dirección del bloque de memoria inicial donde se almacena el objeto. En realidad, el nombre de la instancia se puede utilizar para acceder al inicio del área de memoria de objetos. El motor de tiempo de ejecución calcula las compensaciones desde la memoria de inicio para que podamos ir a donde se almacenan los datos individuales o las referencias de métodos. El siguiente código Java cortado se puede usar para crear una instancia de un objeto Car.
Coche myCar=nuevo Coche();
Como se mencionó anteriormente, el nuevo operador crea el objeto Car y le devuelve la referencia. Esta referencia se almacena en la variable de tipo de coche myCar. Entonces, myCar es la instancia del objeto Car creado.
¿Cuál es la diferencia entre un objeto y una instancia?
Object es un bloque de memoria contiguo que almacena la información real que distingue a este objeto de otros objetos, mientras que una instancia es una referencia a un objeto. Es un bloque de memoria, que apunta a la dirección inicial donde se almacena el objeto. Dos instancias pueden referirse al mismo objeto. La vida útil de un objeto y una instancia no están relacionadas. Por lo tanto, una instancia podría ser nula. Una vez que se eliminan todas las instancias que apuntan a un objeto, el objeto se destruirá.