什么是内部类?
定义在其它类内部中的类叫做内部类。
内部类成员可以直接访问外部类的私有数据,因为内部类是外部类的成员。
编译过后会生成两个或者多个class文件(取决于内部类的数量,中间用¥符号隔开)
内部类分为?
(成员内部类)非静态内部类,静态内部类:算是类成员
局部内部类,匿名内部类。
非静态内部类:
1.在其内部方法找一个变量,会先在该方法找,再去内部类找,最后再去外部类找
2.不允许外部类的静态成员调用非静态内部类,常识
3.非静态内部类中不能定义静态成员
4.非静态内部类普通初始化块的作用与外部类完全相同
静态内部类:
1.这个内部类属于外部类本身,不属于外部类的对象
2.可以包含静态成员和非静态成员
3.外部类的上一级是包,所以不能用static修饰,内部类的上一级是外部类,用static修饰成为外部类相关
局部内部类:
把一个内部类放在方法内定义,就是局部内部类。不能用访问控制符和static
修饰。
匿名内部类:
只需要使用一次的类。