Eine Instanz ist ein einzelnes Objekt, das aus einer Klasse hervorgegangen ist. Die Klasse ist die Vorlage, die Instanz das Stück daraus.
- Instanz
Ein einzelnes, mit eigenen Werten ausgestattetes Objekt, das nach einer Klasse gebaut wurde.
Beispiel: „Jeder Artikel im Warenkorb ist eine eigene Instanz der Klasse Produkt.“Herkunft: lateinisch instantia, das Vorliegende oder der Einzelfall. Im Deutschen steckt dasselbe Wort in der gerichtlichen Instanz, dort allerdings mit anderer Bedeutung.
Abgrenzung zur Klasse: Die Klasse ist die Vorlage und steht einmal im Code. Instanzen entstehen zur Laufzeit, in beliebiger Zahl.
Wie eine entsteht
Über ein Schlüsselwort, meist new, gefolgt vom Namen der Klasse. Dabei läuft der Konstruktor und setzt die Anfangswerte. Was danach vorliegt, ist ein eigenständiges Objekt.
Jede Instanz hat ihre eigenen Werte. Ändert sich der Bestand des einen Produkts, bleiben die anderen unberührt. Die Methoden dagegen stehen nur einmal da, nämlich in der Klasse, und arbeiten jeweils auf den Daten der Instanz, über die sie aufgerufen werden.
Wann der Begriff sonst noch fällt
Außerhalb der Programmierung meint Instanz oft eine laufende Kopie einer Anwendung. Eine Statamic-Instanz ist dann die Installation auf einem bestimmten Server, eine Datenbankinstanz der laufende Dienst.
Der Gedanke ist derselbe: Es gibt eine Bauart und davon ein konkretes, laufendes Stück. Wenn im Projektgespräch von zwei Instanzen die Rede ist, sind meist Produktiv- und Testumgebung gemeint.
Zwei Instanzen vergleichen
Zwei Objekte mit denselben Werten sind nicht automatisch dasselbe Objekt. Ein Vergleich prüft in den meisten Sprachen die Identität, also ob beide Namen auf dieselbe Instanz zeigen, und nicht den Inhalt.
Wer den Inhalt vergleichen will, schreibt dafür eine eigene Methode oder vergleicht Feld für Feld. Das ist eine der Stellen, an denen ein Programm sich anders verhält, als es beim Lesen aussieht.