每日一题----------匿名内部类的注意事项
总结:
1.局部内部类是定义在外部的局部位置,方法中或者代码块中。
2.可以直接访问外部类的所有成员,包括私有的。
3.不能添加访问修饰符,但可以使用final关键字修饰。
4.作用域:仅仅在定义的方法或者代码块中使用。
5.外部类只能在方法中,创建实例,才能调用。
6.如果外部类与匿名内部类的成员重名时,就近原则,如果想访问父类,可以用(父类名.this.成员)
关于匿名内部类:
(1)本质还是类
(2)内部类
(3)该类没有名字,但并不代表没有名字,我们可以用getclass()获取看一下,一般是主类名加$数字。
(4)还是一个对象,因为是new出来的。
(5)匿名内部类只能使用一次,并且只能在方法或者代码块中使用。
格式:
new 类 或者 接口 (参数列表){ 类体 };
new A (){};
(1)先写一个接口 Bell 然后定义一个方法
interface Bell{
void ring();
}
(2)然后定义一个手机类 Cellphone,并且写一个方法alarmclock()
class Cellphone{
public void alarmClock(Bell bell){
bell.ring();
}
(3)在main方法中,创建一个cellphone对象,然后调用alarmclock()方法,并且创建匿名内部类,调用。
Cellphone cellphone = new Cellphone();
cellphone.alarmClock(new Bell() {
@Override
public void ring() {
System.out.println("起床了....");
}
});
(4)在main方法中,创建一个cellphone对象,然后调用alarmclock()方法,并且创建匿名内部类,调用。
cellphone.alarmClock(new Bell() {
@Override
public void ring() {
System.out.println("wedQA");
}
});
注意:如果不知道执行的顺序,可以在运行前,下一个断点,然后一步一步跟踪,看代码。