如何在静态NestedClass中使用非静态OuterClass变量?

时间:2016-11-08 18:39:20

标签: java class inner-classes

我知道静态类我使用静态变量但是如果我想要在静态NestedClass中使用非静态OuterClass变量。还有另一种出路吗?我怎样才能做到这一点?或者我可以这样做吗?

public class NestedClass05 {
    int num=1;

    public static class Test1{
        int num=2;

        public int Method1(int a){                
            return NestedClass05.num+a; // How I can use that
        }
    }

    public class Test2{
        int num=3;

        public int Method1(int a){
             return NestedClass05.this.num+a; // I use like this.
        }
    }
}

1 个答案:

答案 0 :(得分:2)

您需要为静态类提供要从中检索变量的外部类的实例。像:

 public class NestedClass05 {
     int num=1;

     public static class Test1{
          int num=2;

          public int Method1(NestedClass05 instance, int a){
              return instance.num + a;
          }
      }
  }