作者:育霖培伦861 | 来源:互联网 | 2023-08-31 11:11
一、内部类
1.什么是内部类?
内部类就是在一个类中再定义一个类。例如:在A类中创建一个B类,则B类就是内部类。
2.内部类创建对象的格式
格式:
外部类名.内部类名 对象名 = new 外部类对象().new 内部类对象() ;
eg:
内部类使用外部类成员,可以直接使用,包括外部类的私有成员;而外部类要想使用内部类成员,则要创建对象
eg:
3.内部类的两种形式
- 成员内部类:在类的成员位置(类中方法外)
- 局部内部类:在类的局部位置(类中方法内)
4.private、static修饰的成员内部类
(1)当内部类被private修饰后,如何调用其中的方法:在此内部类所在的外部类中再创建一个方法,在新方法中创建内部类对象,再用外部类对新方法进行调用。
代码示例:
(2)当内部类被static修饰后,如何调用其中的方法:
调用格式: 外部类名.内部类名 对象名 = new 外部类对象.内部类对象();
代码示例:
注:在静态内部类继续编写一个静态方法。静态修饰的内容,可以使用类名.的方式进行调用。
Outer.Inner.method();
代码示例:
5.局部内部类
局部内部类是在方法中定义的类,外界无法直接使用,需要在方法内部创建对象并使用。
该类可以直接访问外部类的成员,也可以访问方法内的局部变量
代码示例:
再创建外部类对象,进行调用即可:
二、匿名内部类
1.什么是匿名内部类?
匿名内部类本质上是一个特殊的局部内部类。它将继承\实现、方法重写、创建对象三个步骤,放在了一步进行。它是一个实现了接口或者继承了一个类的子类对象,因为是对象,所以可以直接调用方法。
2.前提条件:
需要存在一个接口或类
3.格式
new 类名或接口名(){
重写方法;
};
代码示例:
4.当一个接口中存在多个抽象方法,该怎么使用匿名内部类进行调用呢?
使用多态方法进行调用,引用父类,指向子类对象。
代码示例:
5.匿名内部类的使用场景
当方法的形式参数是接口或者抽象类时,可以将匿名内部类作为实际参数进行传递