首页  >  文章  >  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>

附加说明:

  • 考虑使用 getter 和 setter 进行字段访问,以强制封装并避免直接字段访问。
  • 确保您的代码正确缩进,以提高可读性并提高理解。

以上是为什么我在 Java 中收到“无法对非静态字段进行静态引用”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn