|
![]() |
![]() |
![]() |
![]() |
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. |
||