Sichtbarkeit von Variablen
Bei der Definition von Methoden haben wir, ohne uns viel zu überlegen, neue Variablen eingeführt.
Die im Folgenden dargestellte Methode square
führt zum Beispiel zwei neue Variablen ein, nämlich x
und result
class Calculation {
public static double square(double x) {
double result = x * x;
return result;
}
}
Diese Variablen sind nur innerhalb der Methode sichtbar. Wir können also nicht von ausserhalb der Methode auf diese Variablen zugreifen.[^1] Was auf den ersten Blick vielleicht wie eine Einschränkung wirkt, hat viele Vorteile. Erstens müssen wir immer nur innerhalb der Methode schauen, ob der Wert einer Variable verändert wird. Wir haben die Sicherheit, dass der Wert an keiner anderen Stelle verändert werden kann. Das macht, dass wir Programme sehr viel einfacher verstehen. Ausserdem können wir denselben Variablennamen in verschiedenen Methoden benutzen, ohne uns Sorgen machen zu müssen, dass dies zu einem Konflikt oder einer Verwechslung führt. Dies können wir leicht selber überprüfen, indem wir ein entsprechendes Experiment aufsetzen.
In der folgenden Klasse sind zwei Methoden aMethod
und main
definiert, die jeweils die Variablen a
und b
definieren.
Wenn wir das Programm ausführen sehen wir aber, dass die Wertezuweisungen in aMethod
keinerlei Auswirkungen auf die Werte in der main
Methode haben.
Experimente
- Führen Sie das Programm aus und beobachten Sie, welche Werte die Variablen
a
undb
haben. Was schliessen sie daraus? - Ändert sich die Variable
a
in dermain
-Methode, wenn Sie die Variablea
anstelle der7
beim Methodenaufruf übergeben?
[^1] Tatsächlich wird immer dann erst Speicherplatz für die Variablen x
und result
angelegt, wenn die Methode aufgerufen wird.
Nach Aufruf der Methode wird dann der Speicher wieder freigegeben.
Entsprechend sind nicht mal mehr die Werte der Variablen im Speicher verfügbar.
Haben Sie Fragen oder Bemerkungen? Schreiben Sie diese doch ins Forum.