美好的一天!初学Java - 静态错误
我是Java的初学者。我不能编译下面的代码:出现
public class Test {
public static void main (String [] args){
int a = calcArea(7, 12);
System.out.println(a);
}
int calcArea(int height, int width) {
return height * width;
}
}
以下错误:
Non-static method calcArea(int, int) cannot be referenced from static content
是什么意思?我该如何解决这个问题..?
您的答复将不胜感激。 谢谢您的建议基于
,我做了一个实例,它是新的测试()如下:
public class Test {
int num;
public static void main (String [] args){
Test a = new Test();
a.num = a.calcArea(7, 12);
System.out.println(a.num);
}
int calcArea(int height, int width) {
return height * width;
}
}
这是正确的吗?有什么区别,如果我这样做...
public class Test {
public static void main (String [] args){
int a = calcArea(7, 12);
System.out.println(a);
}
static int calcArea(int height, int width) {
return height * width;
}
}
关于你的编辑:第一,`calcArea`是一个实例方法,它在一个对象上被调用,并且(通常)执行与该对象相关的操作。第二个使`calcArea`成为静态(类)方法,它(通常)通常仅执行没有任何对象实例的动作。在这里,`calcArea`在它的参数上工作,返回一个结果,这对于类方法来说很好。现在在一个名为`calcArea()`(无参数)的实例方法名为Rectangle的类中,您可以看到它是如何乘以自己的高度和宽度成员变量以返回特定于对象的结果。 – 2011-01-23 15:49:02