内部类 定义在外部类的内部, 编译后是独立存在的类 可以访问外部类的私有成员,且不破坏封装 成员内部类 用"外部类类名.this"访问外部类的当前对象 创建对象:先创建外部类对象,再通过"外部类对象.new 内部类类名"创建内部类对象 静态内部类 只能访问外部类的静态成员 创建对象:直接用"new 外部类类名.内部类类名()" 局部内部类 定义在外部类的方法内部 作用范围:从定义开始到所在的代码块结束 同局部变量 不仅可以访问外部类的成员,还可以访问外部类的局部常量 (加final) 匿名内部类 特殊的局部内部类 1.继承某个类 或者 实现某个接口 2.只会创建一个对象 不仅可以访问外部类的成员,还可以访问外部类的局部常量 (加final) 无法定义构造方法 堆空间 heap :存对象 栈空间 stack :存局部变量