为什么这段代码不起作用?
HelloWorld.java:5: error: non-static method add(int,int) cannot be
referenced from a static context System.out.println(add(1,2));
- 我知道如果我将 static 添加到 add 方法中,它就可以工作,但是为什么我们必须使用 static 呢? 如果这段代码是用 C 语言编写的,它就可以工作,对吗?
如果您不添加静态添加方法,我可以通过哪些其他方式在 main 中“测试”我的添加方法?
public class HelloWorld { public static void main (String []args) { System.out.println(add(1,2)); } public int add (int x, int y) { return x+y; } }
最佳答案
您必须将 add(int, int)
方法设置为静态
public static int add(int x, int y) {
return x + y;
}
或者你也可以这样做
public static void main(String[] args) {
HelloWorld test = new HelloWorld();
System.out.println(test.add(1, 2));
}
这样做的原因是因为您试图从静态方法调用它。可以使用静态方法而无需创建对象的实例(如第一个场景)。在第二种情况下,add
可以是非静态的,因为我们实际上正在创建对象的实例,因此可以访问它的非静态方法。
关于Java静态关键字的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23257136/