问答详情
源自:7-7 Java 中的静态内部类

为什么不能加this

//外部类

public class SOuter {

 private int a=99;//外部类的私有变量

  static int b=11;//外部类静态变量

 //静态内部类

  public static class SIuter{

 int  b=22;//内部类的变量

 public void test(){

 System.out.println("访问外部类中的b;"+SOuter.this.b);

 System.out.println("访问内部类中的b:"+b);

 }

  }

  //测试静态内部类

  public static void main(String [] args){

 //直接创建内部类对象

 SIuter si=new SIuter();

 //调用test方法

 si.test();

  }

}


提问者:邓一格 2017-08-12 13:06

个回答

  • 幕布斯1357829
    2017-08-12 13:47:15
    已采纳

    都是静态变量,虽然名字相同但是不需要加this。

  • 三道杆大队长
    2017-08-12 19:59:12

    外部类中的b是static,因此不需要Outer.this.b

  • weibo_封云亲亲_04159521
    2017-08-12 13:46:07

    您好,我的理解是因为你的b已经是外部类的静态变量.而this是不能在静态方法中出现的;