java 四种内部类的学习

内部类  定义在外部类的内部, 编译后是独立存在的类
        可以访问外部类的私有成员,且不破坏封装

成员内部类
    用"外部类类名.this"访问外部类的当前对象
    创建对象:先创建外部类对象,再通过"外部类对象.new 内部类类名"创建内部类对象
静态内部类
    只能访问外部类的静态成员
    创建对象:直接用"new 外部类类名.内部类类名()"
局部内部类
    定义在外部类的方法内部
    作用范围:从定义开始到所在的代码块结束 同局部变量
    不仅可以访问外部类的成员,还可以访问外部类的局部常量 (加final)
匿名内部类
    特殊的局部内部类
    1.继承某个类 或者 实现某个接口
    2.只会创建一个对象

    不仅可以访问外部类的成员,还可以访问外部类的局部常量 (加final)
    无法定义构造方法

堆空间 heap :存对象
栈空间 stack :存局部变量
原文地址:https://www.cnblogs.com/zhangqiyang/p/3701466.html