Objecte versus instància
La programació orientada a objectes (OOP) és un dels paradigmes de programació més populars. A la POO, l'enfocament se centra en pensar el problema a resoldre en termes d'elements del món real i representar el problema en termes d'objectes i el seu comportament. Molts llenguatges de programació que admeten aspectes clau de la POO (anomenats llenguatges POO) tenen la classe com a eina de programació principal. S'anomenen basats en classes. Les classes són una representació abstracta d'objectes del món real. Les classes tenen propietats anomenades atributs. Els atributs s'implementen com a variables globals i d'instància. Els mètodes de les classes representen o defineixen el comportament d'aquestes classes. Els mètodes i els atributs de les classes s'anomenen membres de la classe. En termes molt senzills, una classe és un pla o una plantilla per a un objecte específic de la vida real. Per tant, un objecte són els blocs de memòria utilitzats per emmagatzemar la informació necessària segons aquest pla. La instància és un bloc de memòria que fa referència a un objecte.
Què és un objecte?
Els objectes són els resultats de la instanciació d'una classe. La instanciació és el procés de prendre el plànol i definir cada atribut i comportament de manera que l'objecte resultant representi realment un objecte de la vida real. Object és un bloc de memòria dedicat i continu destinat a emmagatzemar informació com variables, mètodes o funcions, etc. L'objecte es crea amb l'ús d'un operador nou, en llenguatge de programació Java. Per exemple, si hi ha una classe anomenada Car, es pot utilitzar el següent per crear un objecte de la classe Car.
cotxe nou();
Aquí, el nou operador crea un objecte Car i es retorna una referència a l'objecte. El nou operador juntament amb el constructor de la classe Car s'utilitza per crear el nou objecte. La vida útil de l'objecte comença des de la crida al seu constructor fins al moment en què és destruït. Un cop no es refereix un objecte, el recolector d'escombraries l'eliminarà/destruirà.
Què és una instància?
La instància és un bloc de memòria, que conté la referència a un objecte. En altres paraules, Instance mantindrà l'adreça del bloc de memòria inicial on s'emmagatzema l'objecte. De fet, el nom de la instància es pot utilitzar per accedir a l'inici de l'àrea de memòria d'objectes. El motor de temps d'execució calcula els desplaçaments de la memòria inicial perquè puguem anar on s'emmagatzemen les dades individuals o les referències de mètodes. El codi Java següent es pot utilitzar per crear una instància d'un objecte Car.
Car myCar=cotxe nou();
Com s'ha esmentat anteriorment, el nou operador crea l'objecte Car i hi torna la referència. Aquesta referència s'emmagatzema a la variable Car type myCar. Per tant, myCar és la instància de l'objecte Car creat.
Quina diferència hi ha entre un objecte i una instància?
L'objecte és un bloc contigu de memòria que emmagatzema la informació real que distingeix aquest objecte d' altres objectes, mentre que una instància és una referència a un objecte. És un bloc de memòria, que apunta a l'adreça fixa d'on s'emmagatzema l'objecte. Dos casos poden referir-se al mateix objecte. La vida útil d'un objecte i una instància no estan relacionades. Per tant, una instància podria ser nul·la. Un cop s'eliminin totes les instàncies que apunten a un objecte, l'objecte es destruirà.