2016-07-21 13 views
0

Ich versuche Java zu lernen. Ich lerne derzeit über Arten von Variablen. Ich habe ein kleines Programm geschrieben, das Instanz, lokale, statische Variablen definiert und versucht, dasselbe mit in der Hauptmethode zu drucken. aber ich bin immer Fehlermeldung, dass „nicht statische Variable i nicht aus statischen Kontext referenziert werden Unten ist mein ProgrammInstanzvariablenwert wird nicht gedruckt

public class variable{ 
    int i=5; 
    static int j=10; 
    public static void main(String[] args){ 
    int k=15; 
    System.out.println(i); 
    System.out.println(j); 
    System.out.println(k); 
    } 
} 

Bitte lassen Sie mich wissen, was falsch mit dem Programm

+0

Bitte formatieren Sie den Code mit den richtigen Einzug finden kann nicht. Nicht für diese Frage, aber in Ihrer IDE. Eine gute Formatierung hilft Ihnen, Probleme viel einfacher zu sehen. – f1sh

+0

Wie ich ein Anfänger bin benutze ich Editor, um den Code anstelle von jedem Werkzeug zu schreiben. – shaiksha

+0

Sie können nicht statische Variablen in statischen Methoden nicht aufrufen, da "i" eine nicht statische Variable ist und in der statischen Hauptmethode verwendet wird – Arjit

Antwort

0

Optionen:.

Make a neue Instanz der Klasse, so dass Sie mich erreichen können. In der Tat ist es vielleicht nicht die beste Option ist, weil Sie sollten es privat machen, und eine Getter-Methode hinzufügen ... :)

OR

Sie könnten int i zu static int i wegen der statischen Hauptmethode ändern.

+1: es ist besser Klassennamen camescased zu haben ... :)

+0

Der ganze Sinn dieses Projekts besteht darin, eine Variable zu haben, die nicht statisch ist. – f1sh

+0

@ f1sh Ja, tut mir leid, du hast recht ... – Leah

4

Sie müssen eine Instanz Variable und i

variable v = new variable(); 

// then access v.i 

BTW Camelcase-Namen für Sie Klasse verwenden, um Zugang zu schaffen.

0

int sollte ich statisch sein becasue statischen Kontext auf die nicht-statische Variable

Verwandte Themen