出于某种原因,在我从代码中添加和删除静态可变量之后,eclipse开始在我调用的所有函数上给出错误,说这些函数必须是静态的。但是,如果我让程序运行这些错误,程序就像我打算那样运行。我的代码:
package main;
public class Main implements Runnable {
public void start() {
Thread thread = new Thread(this);
thread.start();
System.out.println("Running...");
Ball.test(); <--- Giving me an error
}
public void run() {
}
public void stop() {
System.out.println("Exiting...");
}
}
当我在球中创建一个名为test的方法时,它给了我:
public static void test() {
// TODO Auto-generated method stub
}
答案 0 :(得分:2)
是的 - 您正在调用该方法,就好像它是一个静态方法:
Ball.test()
如果要调用实例方法,则需要在实例上调用它,例如
Ball ball = new Ball();
ball.test();
理解静态成员和实例成员之间的区别非常重要。你读过appropriate chapter of the Java tutorial了吗?你有一本可以帮助你的好Java书吗? (Stack Overflow非常适合具体问题,但不适合从头开始学习语言。解释语言概念需要花费大量的空间和时间。)