1 内部类
一个类的内部又完整的嵌套了另一个类结构,被嵌套的称为内部类
内部类最大的特性就是可以直接访问私有属性,并且可以体现类与类之间的包含关系
Class Outer { //外部类
Class Inner{} //内部类
}
定义在外部类的局部位置上(比如方法内):
局部内部类
可以直接访问外部类的所有成员 包括私有的
不可以添加访问修饰符 但是可以用final修饰 (局部内部类可能被继承)
作用域仅在定义的方法或代码块中
外部类访问局部内部类 -> 创建对象再访问
外部类和局部内部类的成员变量重名时,遵循就近原则 如果想访问外部类的成员 可以使用 - > 外部类.this.成员
匿名内部类
没有类名(系统自动分配) 本质是类 内部类 同时还是一个对象
jdk在底层创建了匿名内部类xxxx$1 立马就创建了一个xxxx$1实例 并把地址返回给当前实例
匿名内部类使用一次 就不能再使用
定义在外部类的成员位置上:
成员内部类
静态内部类