1 内部类:
把类A定义在类B的内部,类A就被称为内部类。
访问特点:(代码验证只要编译通过说明就是没有问题的)
A:内部类可以直接访问外部类的成员,包括私有。
B:外部类要访问内部类的成员,必须创建对象。
2内部类分类:
成员位置:成员内部类
外界创建对象:
外部类名.内部类名 对象名 = 外部类对象.内部类对象;
成员内部类的修饰:
A:private 为了我们访问数据的安全性
B:static 为了我们访问数据的方便性
**局部位置:局部内部类**
A:可以直接访问外部类的成员,包括私有
B:在成员方法中创建局部内部类的对象,调用局部内部类的功能
**匿名内部类:**没有名字的局部内部类,就是内部类的简化写法
前提:存在一个类或者接口(这里的类可以是具体类也可以是抽象类)
格式:
new 类名或者接口名() {
重写方法;
};
本质:
是一个继承了类或者实现了接口的子类匿名对象。