我靠,你这个程序怎么写的,思路乱的一Bpublic static class InnerClass
  {
    System.out.println("statcivar:"+EnclosingClass.this.staticvar);
  }这是个类吗?
有这么写的吗
EnclosingClass.this.staticvar);
this还有这么用的,我算见识了outer.new InnerClass();
这句话又是什么意思,谁叫你这么写的?

解决方案 »

  1.   

    乱改了一下,可以通过编译了public class EnclosingClass
    {
      private static int staticvar=100;
      public int instancevar=500;  public static void  main(String[] args)
      {
      EnclosingClass outer=new EnclosingClass();
      EnclosingClass.InnerClass inner=new InnerClass();
      }
      public static class InnerClass
      {
    public InnerClass(){
        System.out.println("statcivar:"+EnclosingClass.staticvar);
    }  }
    }
      

  2.   

    其实,你这个程序错在内部类没有给出这个内部类的构造方法!
    你应该注意到,编译错误都在内部类上!你只需要这样修改一下就行了:
    //这是内部类
    public InnerClass(){
       //新增
        public InnerClass()
         {
           System.out.println("statcivar:"+EnclosingClass.staticvar);
          }
       //增加结束
    }
    注意;
       静态成员只能引用静态变量!