Référence de champ non statique à partir d'une méthode statique
En Java, une référence statique ne peut pas être faite à un champ ou une méthode non statique. En effet, contrairement aux champs et méthodes non statiques, les éléments statiques existent indépendamment d'une instance de la classe.
Considérez le code suivant :
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 } }
Dans cet exemple, le main( ) est statique, ce qui signifie qu’elle n’a pas accès au champ non statique « r ». De même, la méthode statique c_area() ne peut pas accéder au champ non statique 'r'.
Solution
Pour résoudre ce problème, créez une instance de la classe et accédez aux champs et méthodes non statiques via cette instance.
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 } }
De cette façon, le champ non statique 'r' est accessible via un objet de la classe, permettant une référence de champ appropriée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!