//外部类
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();
}
}
都是静态变量,虽然名字相同但是不需要加this。
外部类中的b是static,因此不需要Outer.this.b
您好,我的理解是因为你的b已经是外部类的静态变量.而this是不能在静态方法中出现的;