public class TestEquals{
public static void main(String[] args){
Object circled1 = new Circled();
Object circled2 = new Circled();
System.out.println(circled1.equals(circled2));
}}
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 
为什么?

解决方案 »

  1.   

    搞笑嘛。我用你的代码编译通过运行结果:false
      

  2.   

    为什么我编译通不过?
    我也不知道运行结果,就是想看结果啊.
    但是这里是错误的:
    public   boolean   equals(Circled   circled)
    因为equals方法是:object1.equals(object2)
      

  3.   

    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
      

  4.   

    class   Circled能通过编译,就是那个问题.
      

  5.   

    我试了能运行,结果为false
    可能你出的不是程序方面的问题
      

  6.   

    to myshinesxg:
    为什么我编译不过呢?结果应该是false
    class   Circled{ 
    double   radius; 
    public   boolean   equals(Circled   circled){ 
    return   this.radius   ==   circled.radius; 

    }
    修改为
     class Circled{ 
    double radius; 
    public boolean equals(Object circled){ 
    return this.radius == ((Circled)circled).radius; 


    这样应该就可以得出正确结果.
      

  7.   

    Object a=new Object(),v=new Object();
    System.out.println(a.equals(v));
      

  8.   

    public   class   TestEquals{ 
    public   static   void   main(String[]   args){ 
    Circled  circled1   =   new   Circled(); 
    Circled  circled2   =   new   Circled(); 
    System.out.println(circled1.equals(circled2)); 
    } } 
    class   Circled{ 
    public   double   radius; 
    public   boolean   equals(Circled   circled){ 
    return   this.radius   ==   circled.radius; 


    你看一下这样可不可以了,,
    结果是false 
      

  9.   

    compile:
    run-single:
    true
    BUILD SUCCESSFUL (total time: 1 second)
      

  10.   

    最后发现原来是自己不小心搞错了,这两个类我是放在不同文件中的,而我调试的是两个类在同一个文件中的,那样的话,要把内部类声明为static就好了~
    结贴了~