2017-08-14 5 views
-5

Während eine Variable als statische innerhalb der statischen Methode deklarieren gibt Fehler (Kompilierzeit Fehler). Mein Code ist hier: -statische Variable innerhalb der statischen Methode in Java

public class MainStatic { 

    public static void main(String[] args) { 
     System.out.println("Value of static variable is"+print(10));  
    } 
    public static void print(int number) { 
     static int x = number; 
     ++x; 
     System.out.println(x); 
    } 
} 

Ich erhalte Zeitfehler kompilieren wie: - "Illegal Modifikator für Parameter x; nur final ist erlaubt". Da eine statische Methode nicht von der Instanz der Klasse abhängig ist, warum kann ich keine statische Variable innerhalb der statischen Methode deklarieren? Aber es ist zugänglich, wenn ich die Variable innerhalb der Klasse aus der Methode deklarieren?

+0

Sie brauchen dort nicht statisch. Machst du ? –

+1

Inside-Methoden sind die Bereichsmodifikatoren ('static',' public' usw.) nicht verfügbar. Der Umfang ist immer die Methode. –

+0

Was ist Ihre Frage? –

Antwort

0

Eine statische Variable gehört zur Klasse und kann von jeder Person geändert werden, die gemäß dem Zugriffsmodifizierer der Variablen zulässig ist. Eine lokale Methodenvariable existiert nur innerhalb der Methode (und während der Ausführung) und kann von niemandem außerhalb dieser Methode aufgerufen werden. Es macht einfach keinen Sinn.

+1

danke @Jack Flamp –

3

Lokale Variablen existieren nur zum Zeitpunkt des Aufrufs. Statisch beeinflusst (und kann) sie nicht.

+0

Wenn ich es richtig verstehe, dann bedeutet es: - statische Variable spielt keine Rolle zum Zeitpunkt des Aufrufs der Methode, es wird nur als globale Variable betroffen. –

+0

Eine lokale Variable hat keine Beziehung zur * Klasse * oder ob Instanzen davon existieren. Sein Leben ist vollständig enthalten, wenn die Methode ausgeführt wird. Sich nicht um Klassen kümmern müssen. Diese glückliche Instanzvariable. – Kayaman

+0

danke @Kayaman –

Verwandte Themen