内部类
成员内部类
publicic创建方法 class 外部类名 { private String name; public class 内部类名{ }}访问方式 外部对象 外部对象名 = new 外部类名();外部对象。内部对象 内部对象名 =外部对象名.new 内部类名();Demo demo = new Demo();Demo.InnerClass innerClass = demo.new InnerClass();innerClass.doWork();
public class Demo { private String name; ///成员内部类 public class InnerClass{ public void doWork(){ System.out.println("内部类中的方法"); } } public void play(){ ///局部内部类 class Game{ public void doGame(){ System.out.println("play game "); } } Game game = new Game(); game.doGame(); }}public class Test { public static void main(String[] args) { Demo demo = new Demo(); Demo.InnerClass innerClass = demo.new InnerClass(); innerClass.doWork(); demo.play(); }}
匿名内部类
public interface Usb { void drive();}public class UsbTest { public static void main(String[] args) { Usb usb = new Usb() { @Override public void drive() { } }; }}
定义格式
不接受创建对象 new Student().eat();
意义
- 方便GC垃圾回收,节省内存费用(优势)
- 创建对象太频繁(缺点)
![](/images/780-200-2.jpg)