//局部类 package com_black.InnerClass.jubu_neibulei; public class Outer { private int m=66; public void method(){ int m2=99; class In{ public void show(){ System.out.println(m); System.out.println(m2); } } In a=new In(); a.show(); } } package com_black.InnerClass.jubu_neibulei; public class OuterDemo { public static void main(String[] args) { Outer o=new Outer(); o.method(); } } //匿名类 package com_black.InnerClass.niming_neibulei; public interface Inter { void show(); } package com_black.InnerClass.niming_neibulei; /* 前提: 存在一个类或者接口 这里的类可以是具体的类也可以是抽象类 格式: new类名或者接口名(){ 重写方法; }; */ public class Outer { public void method(){ /* new Inter(){ @Override public void show(){ System.out.println("匿名内部类"); } }; //执行之后无结果 */ new Inter(){ @Override public void show(){ System.out.println("匿名内部类"); } }.show();//调用一次 //多次调用 Inter i= new Inter(){ @Override public void show(){ System.out.println("匿名内部类"); } }; i.show(); i.show();//此时调用了两次 } } package com_black.InnerClass.niming_neibulei; public class OuterDemo { public static void main(String[] args) { Outer o=new Outer(); o.method(); } }