1. Lokale Variablen
Lassen Sie uns etwas ernsthafter über Variablen sprechen. Aber dieses Mal werden wir nicht auf ihre interne Struktur eingehen. Stattdessen konzentrieren wir uns darauf, wie Variablen mit dem Code interagieren, in dem sie sich befinden.
Alle Variablen, die innerhalb von Methoden deklariert werden, werden lokale Variablen genannt . Eine lokale Variable existiert nur in dem Codeblock, in dem sie deklariert ist. Genauer gesagt existiert es vom Moment seiner Deklaration bis zum Ende des Codeblocks, in dem es deklariert wird.
Betrachten wir der Einfachheit halber ein Beispiel:
Code | Variable Sichtbarkeit |
---|---|
|
|
Lassen Sie uns noch einmal über den Zugriff auf lokale Variablen sprechen. Hier ist ein Codeblock, der aus geschweiften Klammern besteht: Dies könnte ein Methodenkörper, der Körper einer Schleife oder einfach nur ein Codeblock für eine bedingte Anweisung sein. Eine in einem Codeblock deklarierte Variable existiert bis zum Ende dieses Codeblocks.
Wenn eine Variable im Schleifenkörper deklariert wird, existiert sie nur im Schleifenkörper. Es wird bei jeder Iteration der Schleife erstellt und zerstört.
Beispiel:
Code | Variable Sichtbarkeit |
---|---|
|
|
Wir konnten eine zweite lokale Variable mit Namen b
nur deshalb deklarieren, weil die erste b
Variable in dem Codeblock, in dem die zweite b
Variable deklariert ist, nicht sichtbar ist.
2. Parameter
Wie bereits erwähnt, kann jede Methode Variablen haben, die wir Parameter nennen. Wie sieht es mit ihrer Sichtbarkeit und Lebensdauer aus?
Es ist alles unkompliziert. Parameter werden erstellt, wenn die Ausführung in die Methode eintritt (d. h. wenn die Ausführung des Codes der Methode beginnt). Sie werden eliminiert, wenn die Methode endet. Sie sind im gesamten Körper der Methode sichtbar.
Beispiel:
Code | Variable Sichtbarkeit |
---|---|
|
|
Wie bereits erwähnt, args
handelt es sich lediglich um eine Variable, deren Typ ein Array aus Zeichenfolgen ist. Und wie alle Parameter ist er überall im Körper der Methode verfügbar. Allerdings ignorieren wir es in unseren Beispielen normalerweise.
3. Variablen in einer Klasse
Sie werden sich aus den Lektionen in Level 1 erinnern, dass eine Klasse Methoden und Variablen haben kann. Methoden werden manchmal als Instanzmethoden und Variablen als Instanzvariablen oder Felder bezeichnet. Dies sind eigentlich Synonyme in Java.
Was sind die Variablen (oder Felder) einer Klasse?
Es handelt sich um Variablen, die nicht in einer Methode, sondern in einer Klasse deklariert werden.
Auf sie kann von jeder (nicht statischen) Methode einer Klasse aus zugegriffen werden. Grob gesagt sind Instanzvariablen Variablen, die von allen Methoden einer Klasse gemeinsam genutzt werden.
Beispiel:
Code | Variable Sichtbarkeit |
---|---|
|
|
In diesem Beispiel haben wir zwei Methoden – add()
und remove()
. Die add()
Methode erhöht die Instanzvariablen und und sum
verringert die Instanzvariablen . Beide Methoden funktionieren mit gemeinsam genutzten Instanzvariablen.count
remove()
sum
count
Während der Ausführung einer Methode sind lokale Variablen vorhanden. Die Instanzvariablen einer Klasse existieren innerhalb eines Objekts einer Klasse, solange dieses Objekt existiert. Details zu Objekten einer Klasse erfahren Sie im nächsten Level.
4. Statische Variablen
Wie Methoden können auch die Variablen einer Klasse statisch oder nicht statisch sein. Statische Methoden können nur auf statische Variablen zugreifen.
In Level 11 analysieren wir die Struktur statischer Variablen und Methoden und Sie verstehen die Gründe für diese Einschränkungen.
Um eine statische Variable (Klassenvariable) zu erstellen, müssen Sie das static
Schlüsselwort in ihre Deklaration schreiben.
Statische Variablen sind nicht an ein Objekt oder eine Instanz der Klasse gebunden, in der sie deklariert sind. Stattdessen gehören sie zur Klasse selbst. Deshalb existieren sie auch dann, wenn kein einziges Objekt der Klasse erstellt wurde . Sie können von anderen Klassen aus auf sie verweisen, indem Sie ein Konstrukt wie das folgende verwenden:
ClassName.variableName
Beispiel:
Code | Variable Sichtbarkeit |
---|---|
|
|
Im obigen Beispiel haben wir eine separate Storage
Klasse erstellt, die Variablen count
und sum
in diese verschoben und sie als static deklariert . Auf öffentliche statische Variablen kann von jeder Methode in einem Programm aus zugegriffen werden (und nicht nur von einer Methode).
GO TO FULL VERSION