Was ist eine Instanzvariable?
Eine Instanzvariable ist ein Datenelement in der objektorientierten Programmierung, das für jedes Objekt, in dem es sich befindet, einen eigenen eindeutigen Wert hat. Instanzvariablen können auch als Instanzmitglieder, nicht statische Felder und Datenmitglieder bezeichnet werden. Sie sind ein wichtiger Bestandteil der meisten Objekte und enthalten bestimmte Daten, die das Objekt zur Berechnung verwendet.
Wenn beispielsweise zwei Objekte vorhanden sind, A und B, wobei Objekt A eine Instanzvariable mit dem Namen "blah" hat und Objekt B auch eine Instanzvariable mit dem Namen "blah" hat, sind die beiden "blah" -Variablen unterschiedliche Entitäten. Jede Variable ist dem Objekt zugeordnet, das sie einkapselt. Der vollständige Name der dem Objekt A zugeordneten Variablen "blah" lautet "A.blah", während der vollständige Name der dem Objekt B zugeordneten Variablen "blah" "B.blah" lautet. Jede dieser Variablen kann einen eigenen Wert haben. Wenn die Objekte A und B vom selben Typ sind und ein anderes Objekt dieses Typs, C, erstellt wird, hat Objekt C auch eine Instanzvariable "blah", die einen eigenen eindeutigen Wert haben kann.
Instanzvariablen werden häufig mit statischen Variablen verwechselt, die beiden unterscheiden sich jedoch erheblich. Im Gegensatz zu Instanzvariablen, von denen jedes Objekt eines bestimmten Typs ein eigenes hat, haben statische Variablen nur einen Wert, und dieser Wert ist für jedes Objekt des entsprechenden Typs gleich. Statische Variablen werden oft als Klassenvariablen bezeichnet, die nicht mit Instanzvariablen identisch sind.
Abhängig von den ihnen zugewiesenen Sichtbarkeitseigenschaften sind Instanzvariablen möglicherweise nur innerhalb eines bestimmten Objekts, für ein Objekt und seine Unterklassen oder für das Objekt, in dem es sich befindet, sowie für alle anderen Objekte sichtbar. Diese letzte Art der Sichtbarkeit, die als öffentliche Sichtbarkeit bezeichnet wird, wird häufig als schlechte Praxis für Variablen angesehen, da es in der objektorientierten Programmierung leicht möglich ist, Kapselungsprinzipien zu verletzen. Trotz dieses Tabus gibt es Zeiten, in denen öffentliche Instanzvariablen nützlich sind. Zum Beispiel haben viele Standardklassen in Java öffentliche Instanzvariablen, was manchmal eine einfache Änderung von Eigenschaften ermöglicht.
Die Sichtbarkeit einer Instanzvariablen spielt auch bei der Vererbung eine Rolle. Wenn eine Klasse von einer anderen erbt, erhalten beide Klassen nicht sofort Zugriff auf die Instanzvariablen der anderen. Private Instanzvariablen in der Ober- und Unterklasse bleiben nur auf diese Klassen beschränkt, sodass eine private Variable in der Unterklasse von der Oberklasse nicht gesehen werden kann und umgekehrt. Die einzigen Instanzvariablen, die sowohl die Ober- als auch die Unterklasse sehen können, sind geschützte Variablen in der Oberklasse.