Maison  >  Article  >  Java  >  Pourquoi est-ce que j'obtiens des erreurs « Impossible de faire une référence statique à un champ non statique » en Java ?

Pourquoi est-ce que j'obtiens des erreurs « Impossible de faire une référence statique à un champ non statique » en Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 01:18:30944parcourir

Why Am I Getting

Java : Résolution des erreurs « Impossible de faire une référence statique à un champ non statique »

Énoncé du problème :

Lors de la tentative de compilation d'un programme Java, une erreur se produit : "Impossible de faire une référence statique au champ non statique " ou "Impossible de faire une référence statique à la méthode non statique ."

Cause :

Ces erreurs surviennent lorsque des méthodes statiques tentent d'accéder directement à des champs ou à des méthodes non statiques. Les champs et méthodes non statiques appartiennent à des instances de classe spécifiques et ne peuvent pas être référencés dans des contextes statiques.

Résolution :

Pour résoudre le problème, créez une instance de la classe puis invoquez des méthodes sur cette instance :

<code class="java">public class Cerchio {

  float r;
  float area;
  float cfr;
  final double pi = 3.14;

  public static void main(String[] args) {
    System.out.println("CIRCLE PROGRAM\n");

    Cerchio cerchio = new Cerchio();
    cerchio.r = 5;
    cerchio.c_cfr(); // Invoke method on the instance 'cerchio'
    cerchio.c_area(); // Invoke method on the instance 'cerchio'
    System.out.println("The cir is: " + cerchio.cfr);
    System.out.println("The area is: " + cerchio.area);
  }

  float c_cfr() {
    cfr = (float) (2 * pi * r); // Casting remains the same
    return cfr;
  }

  float c_area() {
    area = (float) (pi * (r * r));
    return area;
  }
}</code>

Remarques supplémentaires :

  • Envisagez d'utiliser des getters et des setters pour l'accès aux champs afin d'appliquer l'encapsulation et d'éviter les champs directs. accès.
  • Assurez-vous que votre code est correctement mis en retrait pour plus de lisibilité et une meilleure compréhension.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn