Nicht-statische Feldreferenz aus einer statischen Methode
In Java kann keine statische Referenz auf ein nicht-statisches Feld oder eine nicht-statische Methode erstellt werden. Dies liegt daran, dass statische Elemente im Gegensatz zu nicht statischen Feldern und Methoden unabhängig von einer Instanz der Klasse existieren.
Betrachten Sie den folgenden Code:
public class NonStaticFieldReference { private float r; // Non-static field public static void main(String[] args) { System.out.println(r); // Error! c_area(); // Error! } private static void c_area() { // Cannot reference non-static field r from static method } }
In diesem Beispiel ist das main( )-Methode ist statisch, das heißt, sie hat keinen Zugriff auf das nicht statische Feld „r“. Ebenso kann die statische Methode c_area() nicht auf das nicht-statische Feld „r“ zugreifen.
Lösung
Um dieses Problem zu beheben, erstellen Sie eine Instanz der Klasse und Greifen Sie über diese Instanz auf die nicht statischen Felder und Methoden zu.
public class NonStaticFieldReference { private float r; // Non-static field public static void main(String[] args) { NonStaticFieldReference instance = new NonStaticFieldReference(); instance.r = 5; instance.c_area(); } private void c_area() { // Access non-static field r from non-static method } }
Auf diese Weise wird über ein Objekt der Klasse auf das nicht statische Feld „r“ zugegriffen, was eine ordnungsgemäße Feldreferenz ermöglicht.
Das obige ist der detaillierte Inhalt vonWarum kann eine statische Methode in Java nicht auf ein nicht statisches Feld zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!