内部类:定义在一个类内部的类叫做内部类,共有四个。分别是成员内部类,静态内部类,局部内部类和匿名内部类。
一:
成员内部类: 它可以访问外部类的私有属性而不破坏封装。
创建方式:两种
第一种:先创建外部类对象,然后外部类.内部类 对象名 = 外部类名.new 内部类();
第二种:直接外部类.内部类 对象名 = new 外部类().new 内部类();
二:
静态内部类:在外部类中,和静态方法同级,static修饰的成员内部类
特点:静态内部类不能直接访问外部类中的非静态成员
创建方式:外部类.内部类 对象名 = new 外部类.内部类();
三:
局部内部类:在外部类的⽅法中定义局部内部类, 局部位置
特点:
1.在局部内部类中可以访问外部类中的成员,局部内部类中不可以定义静态成员
2. 局部内部类访问外部类的局部变量 要求这个局部变量必须是final修饰的 在jdk7中必须加final jdk8可以不加但是默认是final(重点)
四:
匿名内部类 :是非静态内部类的一种特殊情况(只有这个内部类继承了一个类 或者 实现了一个接口。
要求:必须继承一个类或者实现一个接口
特点:一个匿名内部类只能创建一个对象。
作业:
1.ABCD
2.ACD
B(静态内部类不能直接访问外部类非静态成员)
3.ABCD