Instanzvariable vs. lokale Variable
Eine Instanzvariable ist ein Variablentyp, der in der objektorientierten Programmierung vorhanden ist. Es ist eine Variable, die in einer Klasse definiert ist, und jedes Objekt dieser Klasse enthält eine separate Kopie dieser Variablen. Andererseits ist die Verwendung von lokalen Variablen nicht auf objektorientierte Programmiersprachen beschränkt. Es ist eine Variable, die nur innerhalb eines bestimmten Codeblocks (z. B. Funktion, Schleifenblock usw.) bewertet werden kann, in dem sie definiert ist. Aus diesem Grund haben lokale Variablen einen lokalen Gültigkeitsbereich.
Was ist eine Instanzvariable??
Instanzvariablen werden in der objektorientierten Programmierung zum Speichern des Status jedes Objekts in einer Klasse verwendet. Sie werden auch als Member-Variablen oder Feldvariablen bezeichnet. Instanzvariablen werden deklariert, ohne das statische Schlüsselwort in Java zu verwenden. Die in Instanzvariablen gespeicherten Werte sind für jedes Objekt eindeutig (jedes Objekt hat eine separate Kopie), und die darin gespeicherten Werte repräsentieren den Status dieses Objekts. Speicherplatz für eine Instanzvariable wird im Heapspeicher zugewiesen, wenn dieses Objekt im Heapspeicher zugewiesen wird. Instanzvariablen bleiben daher solange im Speicher, wie das Objekt aktiv ist. Zum Beispiel ist die Farbe eines Autos von der Farbe eines anderen Autos unabhängig. So kann die Farbe eines Autoobjekts in einer Instanzvariablen gespeichert werden. In der Praxis werden Instanzvariablen innerhalb von Klassen und außerhalb von Methoden deklariert. Normalerweise werden Instanzvariablen als privat deklariert, sodass auf sie nur innerhalb der deklarierten Klasse zugegriffen werden kann.
Was ist eine lokale Variable??
Lokale Variablen sind Variablen mit einem lokalen Gültigkeitsbereich und werden in einem bestimmten Codeblock deklariert. Lokale Variablen können als Variablen betrachtet werden, die von einer Methode zum Speichern des temporären Status verwendet werden. Der Gültigkeitsbereich einer lokalen Variablen wird anhand des Speicherorts bestimmt, an dem die Variable deklariert ist. Spezielle Schlüsselwörter werden für diesen Zweck nicht verwendet. Typischerweise ist der Zugriff auf eine lokale Variable innerhalb des angegebenen Codeblocks beschränkt (d. H. Zwischen den öffnenden und schließenden Klammern dieses Codeblocks). Lokale Variablen werden normalerweise im Aufrufstapel gespeichert. Dies würde es rekursiven Funktionsaufrufen ermöglichen, ihre eigenen Kopien der lokalen Variablen in separaten Speicheradressen zu speichern. Wenn die Methode ihre Ausführung beendet hat, werden Informationen zu dieser Methode aus dem Aufrufstapel herausgeholt, wobei auch die lokalen Variablen zerstört werden, die gespeichert wurden.
Was ist der Unterschied zwischen Instanzvariablen und lokalen Variablen??
Instanzvariablen werden innerhalb von Klassen außerhalb von Methoden deklariert und speichern den Status eines Objekts, während lokale Variablen in Codeblöcken deklariert werden und zum Speichern des Status einer Methode verwendet werden. Eine Instanzvariable ist live, solange das Objekt, das diese Variable enthält, live ist, während eine lokale Variable während der Ausführung dieses Methoden- / Codeblocks live ist. Auf eine Instanzvariable (die als public deklariert ist) kann innerhalb der Klasse zugegriffen werden, während auf eine lokale Variable nur innerhalb des von ihnen deklarierten Codeblocks zugegriffen werden kann. Die Verwendung von Instanzvariablen ist nur auf die objektorientierte Programmierung beschränkt, während lokale Variablen keine solche Einschränkung haben.