一、内部类的分类
成员内部类、静态内部类、局部内部类、匿名内部类
二、成员内部类
1.什么是成员内部类
写在成员位置的,属于外部类的成员。
2.获取成员内部类对象的两种方式
方法一:当成员内部类被private修饰时。
在外部类编写方法,对外提供内部类对象。
方法二:当成员内部类被非私有修饰时,直接创建对象。
eg:Outer.Inter io = new Outer().new Inter()。
3.当外部类成员变量和内部类成员变量重名时,在内部类中如何访问。
eg:system.out.println(Outer.this.变量名)
三、静态内部类
1.什么是静态内部类
静态内部类是一种特殊的成员内部类
2.直接创建静态内部类成员的方法?
Outer.Inter io = new Outer.inter();
3.如何调用静态内部类中的方法?
非静态方法:先创建对象,用对象调用。
静态方法:外部类名.内部类名.方法名。
四、局部内部类
1.将内部类定义在方法里面就叫做局部内部类,类似于方法里面的局部变量。
2.外界是无法直接使用,需要在方法里面创建对象并使用。
3.该类可以直接访问外部类的成员,也可以访问方法内的局部变量。
五、匿名内部类
1.什么是匿名内部类?
隐藏了名字的内部类,可以写在成员位置,也可以写在局部位置。
2.匿名内部类的格式?
new 类名或者接口名(){
重写方法;
};
3.格式的细节
包含了继承或实现,方法重写,创建对象。
整体就是一个类的子类对象或者接口的实现类对象。
4.使用场景
当方法的参数是接口或者类时,
以接口为例,可以传递这个接口的实现类对象,
如果实现类只要求实现一次,就可以用匿名内部类,简化代码。