Ist der Gültigkeitsbereich einer lokalen Variable immer der gesamte Körper einer Methode?

Eine gute Antwort wäre:

Nein — nur ab der Stelle, an der die Variable deklariert wurde bis zum Ende des Methodenkörpers. Manchmal wird eine lokale Variable mitten im Körper deklariert, nahe der Anweisung, die sie das erste Mal verwendet.

Sie können nicht den gleichen Namen in demselben Gültigkeitsbereich verwenden

Es ist ein Fehler den gleichen Bezeichner zweimal in demselben Gültigkeitsbereich zu verwenden. Zum Beispiel ist das folgende ein Fehler:

class Konto
{
  . . . .
  private int kontostand;

  void verarbeiteAuszahlung( int  betrag  )
  {
    int gebuehr, betrag;

    inkrementZaehler();
    if ( kontostand < 100000 )
      gebuehr = 15;
    else
      gebuehr = 0;

    kontostand =  kontostand -  betrag  - gebuehr;
  }

}

Der Gültigkeitsbereich des formalen Parameters (betrag) überschneidet sich mit dem Gültigkeitsbereich der lokalen Variablen ( ebenfalls betrag genannt). Das ist ein Fehler. Hier ist die Situation anders als beim vorherigen Beispiel, in dem zwei separate formale Parameter beide betrag genannt wurden. In jener Situation hat sich der Gültigkeitsbereichs nicht überschnitten und es gab keine Überschneidung.

FRAGE 10:

Kann der gleiche Bezeichner als Name für eine lokale Variable in zwei verschiedenen Methoden verwendet werden?

Inhaltsverzeichnis