public class A {
改成
public static class A {

解决方案 »

  1.   

    为什么要改为 static 啊
      

  2.   

    non-static variable this cannot be referenced from a static context 
    为什么?这不是讲得很清楚了?
      

  3.   

    非静态的变量是属于某一个对象的,比如你上边的非静态内隐类A。创建它时必须有一个创建它的对象的引用。而静态方法,如你上面的“main”,它是属于类的,没有任何对象的引用可以传给A,所以肯定会报错啦。
      

  4.   

    public class abc {
        
       public static void main(String args[])
        { 
          class A {
         public int t;
         }
            A a=new A();
            A b=new A();
            a.t=10;
            b=a;
            System.out.println(a.t);
            System.out.println(b.t);
        }
    }
    这样改过是正确的!
      

  5.   

    楼主,这是内隐类的问题。thinking java书中有一张是专门讲这个的,你可以去看看。
    不知道你写这个类的目的是什么,如果是为了验证a,b是否为同一个引用,那你可以把类A放到外面,内隐类的引用比较复杂,我目前也还不清楚
    public class abc {     public static void main(String args[])
        { 
            A a,b;
            A=new A();
            a.t=10;
            b=a;
            System.out.println(a.t);
            System.out.println(b.t);
        }
    } class A {
         public int t;
         }
    这样就没问题了,不过记住这时候class A不能是public的了