Unterschied zwischen Instanzvariable und lokaler Variable

Anonim

ist. 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. Auf der anderen Seite ist die Verwendung lokaler Variablen nicht auf objektorientierte Programmiersprachen beschränkt. Es ist eine Variable, die nur innerhalb eines bestimmten Codeblocks (z. B. Funktion, Schleifenblock usw.), in dem sie definiert ist, beurteilt werden kann. Aus diesem Grund sollen lokale Variablen einen lokalen Gültigkeitsbereich haben.

Was ist eine Instanzvariable?

Instanzvariablen werden in der objektorientierten Programmierung zum Speichern des Zustands jedes Objekts in einer Klasse verwendet. Sie werden auch als Mitgliedsvariablen 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 stellen den Zustand dieses Objekts dar. Speicherplatz für eine Instanzvariable wird im Heap zugewiesen, wenn das Objekt im Heap zugewiesen wird. Daher werden Instanzvariablen im Speicher gehalten, solange das Objekt aktiv ist. Zum Beispiel ist die Farbe eines Autos unabhängig von der Farbe eines anderen Autos. So kann die Farbe eines Auto-Objekts in einer Instanzvariablen gespeichert werden. In der Praxis werden Instanzvariablen innerhalb von Klassen und außerhalb von Methoden deklariert. In der Regel werden Instanzvariablen als privat deklariert, sodass nur innerhalb der Klasse, auf die sie deklariert wurde, zugegriffen werden kann.

Was ist eine lokale Variable?

Lokale Variablen sind Variablen mit einem lokalen Gültigkeitsbereich und werden innerhalb eines bestimmten Codeblocks deklariert. Lokale Variablen können als Variablen angesehen werden, die von einer Methode zum Speichern des temporären Zustands verwendet werden. Der Gültigkeitsbereich einer lokalen Variablen wird anhand des Ortes bestimmt, an dem die Variable deklariert ist, und spezielle Schlüsselwörter werden zu diesem Zweck nicht verwendet. Typischerweise ist der Zugriff auf eine lokale Variable innerhalb des Codeblocks, der deklariert ist (dh zwischen der öffnenden und schließenden Klammer dieses Codeblocks), begrenzt. Lokale Variablen werden normalerweise im Aufrufstack gespeichert. Dies würde rekursiven Funktionsaufrufen ermöglichen, ihre eigenen Kopien der lokalen Variablen, die in getrennten Speicheradressenräumen gespeichert werden sollen, beizubehalten. Wenn die Methode ihre Ausführung beendet hat, werden Informationen über diese Methode aus dem Aufrufstapel herausgeholt, wobei auch die lokal gespeicherten Variablen zerstört werden.

Was ist der Unterschied zwischen Instanzvariable und lokaler Variable?

Instanzvariablen werden innerhalb von Klassen außerhalb von Methoden deklariert. Sie speichern den Zustand eines Objekts, während lokale Variablen innerhalb von 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, aktiv ist, während eine lokale Variable während der Ausführung dieses Methoden- / Codeblocks aktiv ist. Auf eine Instanzvariable (die öffentlich deklariert ist) kann innerhalb der Klasse zugegriffen werden, während auf eine lokale Variable nur innerhalb des deklarierten Codeblocks zugegriffen werden kann. Die Verwendung von Instanzvariablen ist nur auf objektorientierte Programmierung beschränkt, während lokale Variablen keine solche Einschränkung haben.