ホームページ  >  記事  >  Java  >  Java で「非静的フィールドへの静的参照を作成できません」というエラーが発生するのはなぜですか?

Java で「非静的フィールドへの静的参照を作成できません」というエラーが発生するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-02 01:18:30943ブラウズ

Why Am I Getting

Java: 「非静的フィールドへの静的参照を作成できません」エラーの解決策

問題ステートメント:

Java プログラムをコンパイルしようとすると、「非静的フィールド への静的参照を作成できません」または「非静的メソッド への静的参照を作成できません」というエラーが発生します。 ."

原因:

これらのエラーは、静的メソッドが非静的フィールドまたはメソッドに直接アクセスしようとすると発生します。非静的フィールドとメソッドは特定のクラス インスタンスに属しており、静的コンテキスト内では参照できません。

解決策:

問題を解決するには、クラスのインスタンスを作成します。次に、そのインスタンスでメソッドを呼び出します:

<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>

追加メモ:

  • カプセル化を強制し、直接フィールドを避けるために、フィールド アクセスにゲッターとセッターを使用することを検討してください。
  • 読みやすく、理解を高めるために、コードが適切にインデントされていることを確認してください。

以上がJava で「非静的フィールドへの静的参照を作成できません」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。