package equality;
public class DoThis {
void f(){System.out.println("DoThis.f()");}
public class Inner{
public DoThis outer(){
return DoThis.this;//如果需要生成对外部类的引用就可以这样
//外部类的名字加.this
}
}
public Inner inner(){
return new Inner();
}
public static void main(String[] args){
DoThis dt=new DoThis();
DoThis.Inner dti=dt.inner();
dti.outer().f();
}
}
```]
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190118201955819.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjQ4MDky,size_16,color_FFFFFF,t_70)
public class ProgramMain {
public int age;
public void say(){
String name="pwd";
class innerClass{
public void hello(){
System.out.println(name+"你好");//可以使用外部成员方法中的变量
}
}
innerClass tClass=new innerClass();//局部内部类和内部类不一样,不能直接New出来,
//因为他的作用域就是在这个方法中所以可以在方法里面new出来
tClass.hello();
System.out.println("这个方法中包含局部内部类");
}
public static void main(String[] args){
ProgramMain a=new ProgramMain();
a.say();
}
}