首頁 >Java >java教程 >為什麼我在 Java 中收到「無法對非靜態欄位進行靜態引用」錯誤?

為什麼我在 Java 中收到「無法對非靜態欄位進行靜態引用」錯誤?

Susan Sarandon
Susan Sarandon原創
2024-11-02 01:18:301048瀏覽

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>

附加說明:

  • 考慮使用getter 和setter 進行字段訪問,以強制封裝並避免直接字段訪問。
  • 確保您的程式碼正確縮進,以提高可讀性並提高理解。

以上是為什麼我在 Java 中收到「無法對非靜態欄位進行靜態引用」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn