1、什么叫内部类:在一个类中定义一个类,例如:在类A中定义一个类B,则类B就是内部类
2、内部类的特点:
2.1、内部类可以直接访问外部类的成员,包括私有成员
2.2、外部类要访问内部类的成员,必须要创建对象
注意:内部类访问以及操作外部类的对象都是在方法体中的
3、什么情况下会使用到内部类:
3.1、因为内部类提供了很好的封装性,所以当你想要隐藏你的操作不想让别人看到时,可以考虑用内部类
3.2、Java中内部类和接口放到一起,可以实现多继承,所以想要继承多个类可以使用内部类
4、内部类的分类:
4.1、在类的成员属性的位置:成员内部类
4.2、在类的方法里:局部内部类
5、public成员内部类,外界如何创建对象使用?
5.1、格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象;
5.2、范例:Outer.Inner oi = new Outer().new Inner();
6、private成员内部类的使用:
例如:
7、局部内部类的使用:
7.1:局部内部类是在方法中创建的,外界无法直接使用,所以要在方法中创建对象来使用
7.2:该类可以直接访问外部类的成员,也可以访问方法中的局部变量
8、匿名内部类:
8.1、格式:new 类名或接口名(){ 重写方法 };(注意:大括号最后有分号,这是很容易出错的地方)
8.2、实质:是一个继承了该类或者实现了该接口的匿名类对象
8.3、前提:存在一个类或者接口,这里的类可以是具体类,也可以是抽象类
8.4、匿名内部类是局部内部类的特殊形式,所以位置也是在方法内
9、匿名类的使用:例如,猫会跳高,狗也会跳高用接口类实现,需要写一个接口类,一个cat类去实现接口,一个dog类去实现接口,太麻烦,用匿名类会有所改进