Java - 找不到与其他 类 的符号错误

Java - Cannot Find Symbol Error With Other Classes

首先我想说清楚:我不是在问什么 cannot find symbol error 的意思是,我只是问在这种情况下是什么导致了这个错误。

我最近深入研究了 Java 中的 classes。下面是我的第一个[非main]class:

class Test {
    public void test() {
        System.out.println("Hello, world!");
    }
}
class Main {
    public static void main(String[] args) {
        test();
    }
}

但我收到以下错误:

exit status 1
Main.java:8: error: cannot find symbol
                test();
                ^
  symbol:   method test()
  location: class Main
1 error

谁能解释一下为什么会这样?

System.out.println("Thanks!");

方法 test() 未声明为静态。

您正在静态方法 main() 中调用非静态方法 test()。如果您不想更改 class 测试,则必须按以下方式更改 main()

public static void main(String[] args) {
    Test t = new Test();
    t.test();
}

如果你不想对 main() 改动太多。然后你必须改变 test() 方法如下: public静态无效测试(){}

和 main() 方法内部:

Test.test()

您不能在 Main class 中使用 test() 方法。因为 test() 方法在另一个 class 中定义,在 Test class 中。要访问其他class(Main class)中的test()方法,您必须创建一个对象,您可以通过该对象访问test()方法。 test() 方法是属于Test class的实例方法。

class Main {
  public static void main(String[] args) {
      Test test1 = new Test();
      test1.test();
  }
}