Objekt vs. Instanz
Objektorientierte Programmierung (OOP) ist eines der beliebtesten Programmierparadigmen. Bei OOP liegt der Fokus auf dem Nachdenken über das zu lösende Problem in Bezug auf Elemente der realen Welt und die Darstellung des Problems in Bezug auf Objekte und deren Verhalten. Viele Programmiersprachen, die Schlüsselaspekte der OOP (OOP-Sprachen) unterstützen, haben die Klasse als Hauptprogrammierwerkzeug. Sie werden als klassenbasiert bezeichnet. Klassen sind eine abstrakte Darstellung von Objekten der realen Welt. Klassen haben Eigenschaften, die als Attribute bezeichnet werden. Attribute werden als globale Variablen und Instanzvariablen implementiert. Methoden in den Klassen repräsentieren oder definieren das Verhalten dieser Klassen. Methoden und Attribute von Klassen werden als Mitglieder der Klasse bezeichnet. In sehr einfachen Worten ist eine Klasse eine Blaupause oder eine Vorlage für ein bestimmtes reales Objekt. Ein Objekt sind also die Speicherblöcke, die zum Speichern der erforderlichen Informationen gemäß diesem Plan verwendet werden. Instanz ist ein Speicherblock, der auf ein Objekt verweist.
Was ist ein Objekt??
Objekte sind das Ergebnis der Instanziierung einer Klasse. Instantiierung ist der Prozess, bei dem der Blueprint genommen und jedes Attribut und Verhalten so definiert wird, dass das resultierende Objekt tatsächlich ein reales Objekt darstellt. Object ist ein dedizierter und kontinuierlicher Speicherblock, der zum Speichern von Informationen wie Variablen, Methoden oder Funktionen usw. zugewiesen wird. Das Objekt wird mit dem neuen Operator in der Java-Programmiersprache erstellt. Wenn es beispielsweise eine Klasse mit dem Namen Car gibt, kann Folgendes zum Erstellen eines Objekts der Klasse Car verwendet werden.
neues Auto();
Hier wird ein Car-Objekt vom neuen Operator erstellt und eine Referenz auf das Objekt zurückgegeben. Der neue Operator wird zusammen mit dem Konstruktor der Klasse Car verwendet, um das neue Objekt zu erstellen. Die Lebensdauer des Objekts beginnt mit dem Aufruf an seinen Konstruktor bis zu seiner Zerstörung. Sobald ein Objekt nicht mehr referenziert ist, wird es vom Garbage Collection entfernt oder zerstört.
Was ist eine Instanz??
Instanz ist ein Speicherblock, der die Referenz auf ein Objekt enthält. Mit anderen Worten, Instanz behält die Adresse des Startspeicherblocks, in dem das Objekt gespeichert ist. Tatsächlich kann der Name der Instanz verwendet werden, um auf den Anfang des Objektspeicherbereichs zuzugreifen. Offsets vom Startspeicher werden von der Laufzeit-Engine berechnet, so dass die einzelnen Daten- oder Methodenreferenzen abgelegt werden können. Mit folgendem Java-Code kann eine Instanz eines Car-Objekts erstellt werden.
Auto myCar = neues Auto ();
Wie oben erwähnt, erstellt der neue Operator das Car-Objekt und gibt die Referenz darauf zurück. Diese Referenz wird in der Fahrzeugvariablen myCar gespeichert. MyCar ist also die Instanz des erstellten Car-Objekts.
Was ist der Unterschied zwischen einem Objekt und einer Instanz??
Object ist ein zusammenhängender Speicherblock, der die tatsächlichen Informationen speichert, die dieses Objekt von anderen Objekten unterscheiden, während eine Instanz eine Referenz auf ein Objekt ist. Es ist ein Speicherblock, der auf die Startadresse des Objekts verweist. Zwei Instanzen können sich auf dasselbe Objekt beziehen. Die Lebensspanne eines Objekts und einer Instanz ist nicht miteinander verbunden. Daher kann eine Instanz null sein. Sobald alle Instanzen, die auf ein Objekt zeigen, entfernt wurden, wird das Objekt zerstört.