In Java verwenden wir das Schlüsselwort final mit Variablen, um anzugeben, dass ihre Werte nicht geändert werden sollen. Ich stelle jedoch fest, dass Sie den Wert in den Methoden der Klasse bearbeiten können. Wenn die Variable statisch ist, ist dies ein weiterer Kompilierungsfehler.
Der Code lautet wie folgt:
Der obige Code ist fehlerfrei. Machen Sie nun die Variable statisch:
Es ist jetzt ein Kompilierungsfehler. Wie funktioniert dieses Finale in der Praxis?
Diese Seite legt nahe, dass private statische Variablen akzeptabel sind, da sie über statische Methoden innerhalb der Klasse verfügbar sind, in der sie deklariert sind. Eine statische Variable ist eine, die nur einmal existiert und nicht an eine Klasseninstanz gebunden ist. Ist das korrekt? Könnte mir bitte jemand helfen?
Der Code lautet wie folgt:
Java:
import java.util.ArrayList;
import java.util.List;
class Test {
private final List foo;
public Test()
{
foo = new ArrayList();
foo.add("foo"); // Modification-1
}
public static void main(String[] args)
{
Test t = new Test();
t.foo.add("bar"); // Modification-2
System.out.println("print - " + t.foo);
}
}
Code:
private static final List foo;
Diese Seite legt nahe, dass private statische Variablen akzeptabel sind, da sie über statische Methoden innerhalb der Klasse verfügbar sind, in der sie deklariert sind. Eine statische Variable ist eine, die nur einmal existiert und nicht an eine Klasseninstanz gebunden ist. Ist das korrekt? Könnte mir bitte jemand helfen?