Warum gibt es ein Problem mit einer nicht statischen Variable, die von main gelesen wird?

8
%Vor%

FEHLER: Kann keinen statischen Verweis auf den nicht statischen Feldnamen

erstellen     
Sam 12.01.2011, 03:29
quelle

2 Antworten

6

Der Grund dafür ist, dass main eine statische Methode ist, was bedeutet, dass es kein Empfängerobjekt gibt. Mit anderen Worten, es funktioniert nicht relativ zu einem Objekt. Wenn Sie also versuchen, ein nicht statisches Feld nachzuschlagen, wird Java verwirrt, in welchem ​​Objekt das Feld enthalten ist. Normalerweise würde es annehmen, dass das Feld in dem Objekt ist, von dem die Methode aufgerufen wird, aber weil main ist statisch Dieses Objekt existiert nicht.

In der Regel können Sie von statischen Methoden nicht auf reguläre Instanzvariablen zugreifen.

    
templatetypedef 12.01.2011, 03:31
quelle
2

Um auf nicht statische Elementvariablen und Funktionen zuzugreifen, müssen Sie ein bestimmtes Objekt haben. (Wenn zum Beispiel alles in class Bob { ... } wäre, müssten Sie etwas wie

tun %Vor%

in Ihrem Hauptfenster.

    
Matt 12.01.2011 03:38
quelle

Tags und Links