内部类 : 类体中还有一个类的声明
当一个事物的内部,还有一个部分需要一个完整的结构进行描述,这个内部的完整结构,一般只是为了让外部类使用
而内部类还有一个作用是 可以访问外部类中的私有化属性
分类 :
成员变量 --> 成员内部类/普通内部类
静态变量 --> 静态内部类 * 局部变量 --> 局部内部类
形参/实
静态内部类:
静态内部类 等同看做静态变量
可以使用权限控制修饰符
静态内部类中,可以声明所有属性,静态和成员都可以
静态内部类中,可以直接访问外部类的静态属性,不能直接访问成员属性 参 --> 匿名内部类
局部内部类:
局部内部类等同于局部变量
局部内部类,不能有静态声明
局部内部类 不能使用static修饰符,也不能使用权限控制修饰符
如果外部方法是静态方法,则局部内部类不能直接访问外部类的成员属性
如果外部方法 是成员方法,则局部内部类中可以直接访问外部类的所有属性
局部内部类中如果要使用外部方法中的局部变量,则该变量必须使用final修饰(1.8开始,final可以省略)
匿名内部类 :
在方法调用的时候,需要传入一个类的对象,这个时候可以直接传入一个匿名内部类
一般该对象,是接口的实现类对象,匿名内部类 等于是子类,可以使用super等关键字
语法 : 方法(new 父类/接口(){ 类体 })
匿名内部类,会自动创建一个对象传入
好处 少定义一个类,缺点 无法重复使用