源码:
public class Outer { int a = 5; public void WW(A ak){ ak.run(); } public void JB(){ class JB{ //局部类在方法里面,作用域仅限该方法 void JBL(){ System.out.println("局部内部类的JBL方法"); } } new JB().JBL(); //JB jb = new JB(); jb.JBL(); } static class Inner{ //静态内部类 public void AA(){ System.out.println("i am inner!!"); } } class OnStInner{ //非静态内部类 int a = 3; public void BB(){ System.out.println(this.a); //打印内部类变量a System.out.println(Outer.this.a); //打印外部类变量a } } public static void main(String[] args) { Outer.Inner a = new Outer.Inner(); //构造静态内部类 a.AA(); Outer.OnStInner oo = new Outer().new OnStInner(); //构造非静态内部类 oo.BB(); Outer o = new Outer(); o.WW(new AA()); o.WW(new A() { //匿名内部类-----1 @Override public void run() { System.out.println("这是匿名内部类的第一个run方法"); } }); o.WW(new A() { @Override public void run() { System.out.println("这是匿名内部类的第二个run方法"); } }); o.JB(); } } interface A{ void run(); } class AA implements A { @Override public void run() { System.out.println("这是A接口的实现类run方法"); } }
运行结果:
学习笔记