【内部类】
内部类概述:
把类定义 在其他类的内部,这个类被称为内部类。
举例:在类A 中定义了一个类 B,类B 就是内部类。
内部类的访问特点:
内部类可以直接访问外部类的成员,包括私有。
外部类要访问内部类的成员,必须创建对象。
内部类的位置:
成员位置:在成员位置定义的类,被称为成员内部类。
局部位置:在局部位置定义的类,被称为局部内部类(比如方法里面)。
成员内部类的修饰符:
private:为了保证数据多额安全性
static:为了方便访问数据
注意,静态内部类访问的外部类数据必须用静态修饰
局部位置的内部类:
可以直接访问外部类的成员
可以创建内部类对象,通过对象调用内部类方法来使用局部内部类功能。
局部内部类访问局部变量的注意事项:
局部变量必须被 final 修饰?是的。为什么?
因为局部变量会随着方法的调用完毕而消失,这个时候,局部对象并没有立马从堆内 存中消失,
还要使用那个变量。为了让数据还能继续使用,就用 final 修饰,这样在堆内存里面存储的其实是一个常
量值。通过反编译工具可以看一下。
匿名内部类
匿名内部类概述:
就是内部类的简单写法。
前提:存在一个类或者接口
这里的类可以是具体类也可以是抽象类。
格式:
new 类名或者接口名(){重写方法}
本质:
是一个继承了类或者实现了接口的子类匿名对象。
本质是一个对象,是该类的子类,或抽象类的具体类,或者接口的实现类的对象。
终身学习者