java - 来自非静态引用错误的非静态方法。简单程序

标签 java class

谁能给我解释一下,为什么我不能做以下事情?

public class first_class {  

    int grade1=7;
    int grade2=4;

    double average;

    public double calcAverage() {
        average=(grade1+grade2) / (2);
        System.out.println(average);
        return average;
    }

    public static void main(String []args) {
        first_class.calcAverage();
    }
}

我收到错误消息“无法从 first_class.main(first_class.java:17) 的静态上下文中引用非静态方法 calcAverage()”。

最佳答案

试试这个:

new first_class().calcAverage();

它所做的是首先创建您的 first_class 类的新实例,然后对该实例调用 calcAverage() 方法。现在,您正在引用实例上的方法,而不是尝试静态引用它。

该错误表明您试图从一些静态的东西(main() 方法)中引用一个没有实例的方法。如果该方法标记为静态,您可以执行此操作,但您的 calcAverage() 未标记为静态,因此您需要创建一个实例。

关于java - 来自非静态引用错误的非静态方法。简单程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8721101/

相关文章:

java - 如何在不重新启动或停止应用程序的情况下重置 infinispan 统计信息

android - 用于手机文件共享的 USB 类设备

java - 在java中使用scala对象?

java - 如何在java中创建一个线程每5秒运行一次后台

java - 跟踪 Canvas 上的点的最佳方法

带有函数原型(prototype)的 Javascript 命名空间声明

python - 如何在 Python 中的类中引用静态属性?

c++ - 有什么方法可以使用 "using"将类的成员拉入您的命名空间吗?

python - 理解 python 描述符示例 (TypedProperty)

java - 如何从 Web 应用程序内部使用 Netty - 正确配置的步骤