当前位置: 首页 > news >正文

每日一题----------匿名内部类的注意事项

总结:

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");
            }
        });

注意:如果不知道执行的顺序,可以在运行前,下一个断点,然后一步一步跟踪,看代码。

相关文章:

  • SpringCloud注册中心-eureka
  • 【深度学习CV】【图像分类】从CNN(卷积神经网络)、ResNet迁移学习到GPU高效训练优化【案例代码】详解
  • YOLOv8 自定义目标检测
  • 【原创】C# HttpClient 读取流数据的问题
  • Diffenc: Variational Diffusion With A Learned Encoder
  • 剑指 Offer II 059. 数据流的第 K 大数值
  • < 自用文儿 > DELETED 设置速读 in Ubuntu24
  • python标识符
  • mfc140u.dll是什么?当程序遭遇mfc140u.dll问题:快速恢复正常的秘诀
  • 异步操作返回原始上下文
  • 使用wifi连接手机adb进行调试|不使用数据线adb调试手机|找应用错误日志和操作日志
  • nginx 配置403页面(已亲测)
  • AI自动化应用的影响
  • 第一篇《Oracle 数据泵全解析:高效数据导出与导入》(Data Pump)
  • 学习笔记-INTER CPU 命名
  • 给定计算预算下的最佳LLM模型尺寸与预训练数据量分配
  • xss-flash钓鱼
  • 深入掌握Redis:从原理到实践的全方位指南
  • 【Linux-HTTP协议】HTTP知识延续+HTTP设计改进
  • 论坛系统测试报告
  • 慢品巴陵,看总编辑眼中的岳阳如何书写“山水人文答卷”
  • 女子应聘文员被说“太丑”?官方回应:有关部门启动核查处置
  • 江苏疾控:下设部门无“病毒研究所”,常荣山非本单位工作人员
  • 山东茌平民企巨头实控人省外再出手:斥资16亿拿下山西一宗探矿权
  • 15年全程免费,内蒙古准格尔旗实现幼儿园到高中0学费
  • 泽连斯基:俄代表团级别低,没人能做决定