Skip to main content

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 und b haben. Was schliessen sie daraus?
  • Ändert sich die Variable a in der main-Methode, wenn Sie die Variable a anstelle der 7 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.