java静态方法不可以调用非静态变量

来源:百度知道 编辑:UC知道 时间:2024/05/22 04:24:30
public class TestEquals{
public static void main(String[] args){
Object circled1 = new Circled();
Object circled2 = new Circled();
System.out.println(circled1.equals(circled2));
}

}
public class Circled{
double radius;
public boolean equals(Circled circled){
return this.radius == circled.radius;
}
}
编译时候第三四行出错,non-static variable this cannot be referenced from a static context
为什么?
2楼的可以成功编译?
为什么我编译通不过啊?
TestEquals.java:3: non-static variable this cannot be referenced from a static c
ontext
Object circled1 = new Circled();
^
TestEquals.java:4: non-static variable this cannot be referenced from a static c
ontext
Object circled2 = new Circled();
^
2 errors

2个class是在2个不同的文件中的,而且class Circled能够成功编译.
这里是错误的我知道:
public boole

没问题啊,没错啊,我可以编译通过的

楼上的简直乱说
人家这里是多态,你new Object()是什么意思?

有点道德好不好

生成实例的时候,你需要把object声明成静态的才行。
不记得怎么写了,在出错行前面加static关键字试试?

public class Circled{
去掉public ,一个文件中只允许一个public的类

circled1.equals(circled2);
需要的是 Circled 但是提交的是 Object