Frage von Paranormal43, 36

Java Frage zu lokale Variablen?

Hallo Leute, ich weiß, dass lokale Variablen in einer Methode deklariert werden. Aber sind Variablen die in einer If-Statement deklariert/erzeugt werden auch lokal ?

Antwort
von spaghetticode, 34

Ja, lokale Variablen sind generell lokal zu dem Block, in dem sie angelegt wurden. Wenn du also innerhalb des Anweisungsblocks einer if-Anweisung eine Variable anlegst, ist sie außerhalb nicht bekannt.

Expertenantwort
von KnusperPudding, Community-Experte für Java, 34

Du hast dir die Frage genaugenommen selbst schon beantwortet. 

 ich weiß, dass lokale Variablen in einer Methode deklariert werden


Beispiel:

public void test() {
    int i = 1;

    if (i == 1) {
        int k = 1;
    }
}

Sowohl i als auch k erfüllen das Kriterium, in einer Methode deklariert zu sein, dabei spielt es keine Rolle wo genau innerhalb der Methode.

Kommentar von spaghetticode ,

Das stimmt nicht. k ist nur innerhalb des Anweisungsblocks gültig.

if (i == 1) {
int k = 1;
}
System.out.println("k = " + k); // FEHLER!
Kommentar von KnusperPudding ,

Das schon. Aber das habe ich auch nicht behauptet (Dass die Variable außerhalb des Blocks Gültigkeit hat). Dennoch ist es meines Wissens nach immer noch eine lokale Variable. 

if (i == 1) {
int k = 1; System.out.println(k);
}

Sofern du mich hier belehren kannst, wie man das sonnst nennst, wäre ich dir sehr verbunden.

Kommentar von spaghetticode ,

Nein, nein, ist schon richtig. Ich hatte das hier:

dabei spielt es keine Rolle wo genau innerhalb der Methode

fälschlicherweise so verstanden, dass die Variable deiner Meinung nach auch eine lokale Variable der Methode sei.

Kommentar von KnusperPudding ,

Gut dass das geklärt ist. Danke

Antwort
von Royce, 36

Auf die Methode bezogen, ja

Keine passende Antwort gefunden?

Fragen Sie die Community