Home   Cover Cover Cover Cover
 

Deklarationsregeln

class C {
  static int a = 0, b = 1;

  static void Main() {
    int c;
    if (a == 0) {
      int a;   // Fehler 1
      int b;
      int d;
      ...
    } else {
      int d;
      ...
    }
    for (int c = 0; c < 3; c++) {...}  // Fehler 2
    for (int d = 0; d < 3; d++) {...}
  }
}

Fehler 1: Es ist zwar prinzipiell erlaubt, in einer Methode eine lokale Variable a zu deklarieren, die denselben Namen hat wie das Feld a der Klasse. Wenn aber das Feld bereits vor der Deklaration der lokalen Variablen in der Methode benutzt wurde (wie das hier der Fall ist), ist der Name a in dieser Methode bereits mit dem Feld a verbunden. Daher ist es nicht mehr erlaubt, eine lokale Variable namens a zu deklarieren.

Fehler 2: Die Variable c wurde bereits auf äußerer Ebene in der Methode Main deklariert. Daher ist eine nochmalige Deklaration in der for-Schleife nicht mehr erlaubt.

Die drei Deklarationen von d im then-Zweig, else-Zweig und in der for-Schleife stören hingegen nicht, weil sie in disjunkten Deklarationsbereichen deklariert wurden.