Was ist der Unterschied zwischen einer statischen und einer nicht-statische Initialisierung code-block

Meine Frage ist über eine bestimmte Verwendung des static-Schlüsselworts. Es ist möglich, verwenden Sie static Stichwort decken einen code-block innerhalb einer Klasse, die nicht gehören zu jeder Funktion. Zum Beispiel der folgende code kompiliert werden:

public class Test {
    private static final int a;    
    static {
        a = 5;
        doSomething(a);
    }
    private static int doSomething(int x) {
        return (x+5);
    }
}

Wenn Sie entfernen die static Stichwort beschwert es sich, weil die variable a ist final. Allerdings ist es möglich, entfernen Sie die beiden final und static keywords und machen es zu kompilieren.

Ist es verwirrend für mich in beide Richtungen. Wie soll ich einen code-Abschnitt, der gehört nicht zu irgendeiner Methode? Wie ist es möglich, um es aufzurufen? Im Allgemeinen, was ist der Zweck dieser Nutzung? Oder besser, wo finde ich Dokumentation dazu?

InformationsquelleAutor Szere Dyeri | 2008-12-02

Schreibe einen Kommentar