每日一题----------匿名内部类的注意事项
总结:
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");
            }
        }); 
注意:如果不知道执行的顺序,可以在运行前,下一个断点,然后一步一步跟踪,看代码。
