Ist das OK? Sicherlich. Der Aufrufer hat den Wert 7000 an die Methode geschickt.
Was bewirkt betrag = 0
in der Methode?
Das ändert die lokale Kopie des Wertes von 7000 in 0.
Aber das hat keine Auswirkung auf den Aufrufer. Betrachten wir noch einmal den Aufrufer — der Wert 7000 ist in keiner Variable enthalten. Es gibt nichts, was die aufgerufene Methode ändern könnte.
Eine lokale Variable ist eine Variable, die innerhalb des Körpers einer
Methode deklariert ist.
Sie kann nur von den Anweisungen innerhalb der Methode, die nach ihrer Deklaration kommen,
gesehen werden.
(Ihr Gültigkeitsbereich beginnt mit ihrer Deklaration und endet mit dem Ende der Methode.)
Zum Beispiel ist gebuehr
von verarbeiteAuszahlung()
eine lokale Variable:
class Konto { . . . . private int kontostand; void verarbeiteAuszahlung( int betrag ) { int gebuehr; // Gültigkeitsbereich von gebuehr beginnt hier inkrementZaehler(); if ( kontostand < 100000 ) gebuehr = 15; else gebuehr = 0; kontostand = kontostand - betrag - gebuehr ; } // Gültigkeitsbereich von gebuehr endet hier }
Die lokale Variable gebuehr
wird in einer typischen Weise verwendet.
Sie wird verwendet, um einen temporären Wert zu halten, während etwas berechnet wird.
Lokale Variablen werden nicht verwendet, um die permanente Werte des Zustands eines
Objekts zu halten.
Sie enthalten einen Wert nur während der kurzen Zeitspanne in der die Methode aktiv ist.
Ist der Gültigkeitsbereich einer lokalen Variablen immer der gesamte Körper einer Methode?