Offensichtlich, nein, können wir nicht.
In% static
bedeutet in Java, dass es sich um eine Variable / Methode einer Klasse handelt. Sie gehört zur gesamten Klasse, aber nicht zu einem ihrer bestimmten Objekte.
Dies bedeutet, dass das Schlüsselwort static
nur in einem Klassenbereich verwendet werden kann, d. h. es hat keinen Sinn innerhalb von Methoden.
Sie können statische Variablen innerhalb Ihrer main
-Methode (oder einer anderen Methode) verwenden, aber Sie müssen sie in der Klasse deklarieren:
Das ist völlig in Ordnung:
%Vor% Auch das ist in Ordnung, aber in diesem Fall ist someNumber
eine lokale Variable, keine statische.
Da die statischen Variablen Speicher zum Zeitpunkt des Ladens der Klasse zugewiesen werden und der Speicher nur einmal zugewiesen wird. Wenn Sie nun eine statische Variable innerhalb einer Methode haben, dann fällt diese Variable unter den Geltungsbereich der Methode, nicht den Bereich der Klasse und JVM ist nicht in der Lage, Speicher zuzuweisen, da eine Methode mit Hilfe des Klassenobjekts aufgerufen wird, und zwar zur Laufzeit, nicht zum Laden der Klasse.
Sie können nicht, warum möchten Sie das tun? Sie können es immer auf der Klassenebene deklarieren, wo es hingehört.
In C können Sie lokal begrenzte Variablen statisch zuweisen. Leider wird dies in Java nicht direkt unterstützt. Aber Sie können den gleichen Effekt erzielen, indem Sie verschachtelte Klassen verwenden.
Zum Beispiel ist das Folgende erlaubt, aber es ist schlechtes Engineering, weil der Umfang von x viel größer ist, als es sein muss. Außerdem gibt es eine nicht offensichtliche Abhängigkeit zwischen zwei Mitgliedern (x und getNextValue).
%Vor%Man möchte wirklich Folgendes tun, aber es ist nicht legal:
%Vor%Sie können dies jedoch stattdessen tun,
%Vor%Es ist bessere Technik auf Kosten von etwas Hässlichkeit.
Tags und Links java static-variables