java 匿名内部类的理解

深入理解Java匿名内部类:语法、应用与最佳实践 在Java编程中,匿名内部类(Anonymous Inner Class)是一种没有名字的内部类,它通常在创建对象的同时定义类的实现。虽然Java 8引入的Lambda表达式在许多场景下可以替代匿名内部类,但理解匿名内部类的工作机制仍然非常重要。匿名内部类是Java语言中函数式编程的雏形,虽然在Java 8引入了Lambda表达式后,部分场景可以被替代,但理解匿名内部类仍然对掌握Java编程思想至关重要。// 如果取消注释,上面的匿名内部类访问counter会报错。// 示例1:实现接口的匿名内部类。 阅读详情

/**
 * Created by Kodulf on 2017/4/3.
 * 匿名内部类的测试
 * 1: 在这个文件中创建一个类或者是接口,这个类可以是抽象类也可以是非抽象类,一定要注意,这个匿名内部类不一定就要是抽象类
 * 其实只要是new 类名(){};就算是创建了一个匿名内部类了,
 * 这个时候如果用javac 去编译就会发现就出现类似"NiMingClass$1.class"的文件,其中$表明的就是内部类
 *
 * 2:像这里的例子会创建三个内部类:
 * NiMingClass$1.class,这个是匿名内部类
 * NiMingClass$2.class,这个是匿名内部类
 * NiMingClass$LeiNeibuLei.class,这个是内部类
 *
 * 3:所以说匿名内部类,首先是内部类,只不过是java 自己给你创建了一个简单类名而已,所以才叫匿名啊
 */
public class NiMingClass {

    public static void main(String[] args){
        /**
         * 这里java会自动创建一个匿名的内部类,从顺序上面来说是第一个,所以 NiMingClass$1.class
         */
        new AbstractClass(){
            @Override
            void show() {
                System.out.println("哈哈,我是抽象类里面的");
            }
        }.show();

        /**
         * 下面java会自动创建一个匿名内部类,从顺序上面来说是第二个,所以 NiMingClass$2.class
         */
        new NotAbstractClass(){

        }.show();

        /**
         * 接口,new出来的匿名内部类,从顺序上面来说是第三个,所以 NiMingClass$3.class
         */
        new InterfaceNiMing(){
            @Override
            public void test() {
                System.out.println("哈哈,我是接口里面的方法");
            }
        }.test();

        /**
         *匿名内部在方法上面,从顺序上面来说是第四个,所以 NiMingClass$4.class
         */
        testInterface(new InterfaceNiMing() {
            @Override
            public void test() {
                System.out.println("哈哈,我是作用在方法的参数上面的匿名内部类里面的方法");
            }
        });
    }

    /**
     * 测试匿名内部类作用在接口上面,方法参数
     * @param interfaceNiMing
     */
    public static void testInterface(InterfaceNiMing interfaceNiMing){
        interfaceNiMing.test();
    }

    /**
     * 这里是内部类
     */
    class LeiNeibuLei{

    }
}

/**
 * 抽象类
 */
abstract class AbstractClass {
    abstract void show();
}

/**
 * 非抽象类
 */
class NotAbstractClass{
    void show(){
        System.out.println("哈哈,我是非抽象类");
    }
}

interface InterfaceNiMing{
    void test();
}

javac 执行后,我们就可以看到了下面的文件的列表了,特别要注意的就是1,2,3,4这个四个就是匿名内部类






【即插即用模块】Transformer篇 | ICCV 2025 | MALA :注意力分布神似Softmax,告别线性注意力性能短板! MALA(Magnitude-Aware Linear Attention)是一种改进的线性注意力机制,通过引入缩放因子和偏移项,解决了传统线性注意力忽视查询幅度的问题,使其分布更接近Softmax Attention。该模块具有线性复杂度(O(n)),结合RoPE和LEPE编码实现全局-局部位置信息混合,通过z值调制平衡信息权重。实验表明MALA在轻量级视觉任务中能有效平衡效率与精度,注意力可视化显示其分布与Softmax Attention高度相似。代码提供完整的RoPE位置编码和线性注意力 阅读详情

相关推荐

拆解维修指南:当你的大扭矩电动扳手‘罢工’,如何自己动手排查行星齿轮与谐波传动故障?

本文详细解析了大扭矩电动扳手行星齿轮与谐波传动故障的排查与修复方法。从故障初判、拆解工艺到行星齿轮系统检测、谐波传动维护,提供了一套完整的维修指南,帮助用户快速诊断和解决常见问题,延长工具使用寿命。

weixin_42525582的博客 435

【Java基础】匿名内部类

详细讲解Java的匿名内部类的定义,使用方法,使用例子

小吉妙妙屋 1万+

【电子元件篇】MOSFET场效应管作用、选型和测量指南-超简单解读

场效应管是一种电压控制型半导体器件,相比三极管具有输入阻抗高、噪声小、功耗低等优势。主要分为结型和绝缘栅型两大类,后者又可分为耗尽型和增强型MOS管。场效应管通过栅极电压控制漏极电流,具有转移特性和输出特性两大静态特性,以及快速的开关特性。其关键参数包括饱和漏源电流、夹断电压、跨导等,应用场景涵盖信号放大、恒流源、阻抗变换等领域。使用时需根据电路需求选择合适类型,如结型管适合一般放大,功率MOSFET适合高压大电流场合。检测时可用万用表电阻档初步判断好坏和放大能力。

2301_81299416的博客 2540

【Numpy】第五部分:统计分析、搜索与逻辑判断(分析篇)

本文系统阐述了基于NumPy的算法仿真结果统计分析方法,涵盖描述性统计(均值、中位数、方差)、极值定位(argmax/argmin)、数据限幅(clip)、积分计算(sum/cumsum)及异常检测(isnan/isinf、where)。通过逻辑判断与向量化操作,实现对轨迹误差、能耗、参数收敛性等指标的高效评估,并有效处理执行器饱和、数值发散等工程问题,提升控制算法验证的可靠性与自动化水平。

feizuiku0116的博客 1251

zynq 7010/020 AMP双核通信-Vitis2023/2024

在platform cpu1设置中添加;注意value中使用空格分开程序思路:比较简单。

weixin_43310175的博客 916

PX4二次开发实战:从零构建自定义飞控模块

本文详细介绍了PX4二次开发的实战指南,从环境搭建到自定义飞控模块的创建,涵盖了uORB消息定义、外部传感器驱动集成、控制算法实现等关键步骤。通过具体代码示例和调试技巧,帮助开发者快速入门PX4二次开发,构建高效稳定的无人机飞控系统。

weixin_29175469的博客 339

Java匿名内部类

Java匿名内部类笔记。

qq_51542797的博客 3136

modbus

从机地址 功能码 起始地址高位 起始地址低位 数量高位 数量低位 字节数 0001H高位 0001H低位 0002H高位 0002H低位 CRC高位 CRC低位。每个输入寄存器的长度为2个字节。其中,CDH对应线圈0013H到001AH的内容,01H对应线圈001B到001CH的内容,未使用位用0填充。从机地址 功能码 起始地址高位 起始地址低位 寄存器数量高位 寄存器数量低位 CRC高位 CRC低位。从机地址 功能码 起始地址高位 起始地址低位 寄存器数量高位 寄存器数量低位 CRC高位 CRC低位。

lunhuicnm的博客 9747

Java 匿名内部类

Java 匿名内部类是一种可以在创建对象时直接定义内部类的方式,而不需要单独定义一个类。它通常用于创建实现某个接口或继承某个类的对象。匿名内部类的作用包括:简化代码。使用匿名内部类可以避免定义一个单独的类,从而使代码更加简洁。实现接口或继承类的抽象方法。使用匿名内部类可以直接实现接口或继承类的抽象方法,从而避免定义一个单独的类。Java 匿名内部类是一种可以在创建对象时直接定义内部类的方式,它通常用于创建实现某个接口或继承某个类的对象。

hj1993的博客 2746

基于R语言的DICE模型实践技术应用;预测不同减排路径下的经济增长、碳排放量、气候变化程度以及社会福利变化

DICE模型是一个动态综合气候经济模型,由诺贝尔经济学奖得主William Nordhaus开发,用于评估气候变化对经济的影响以及不同减排政策的经济成本和效益。以下是一个关于DICE模型在气候变化影响评估中的实际应用案例,结合R语言代码进行讲解。

KY_chenzhao的博客 866

【论文阅读1】机理引导的残差学习用于电池全生命周期状态监测 | Nature Communications

本文提出了一种机理引导的残差学习框架,用于提升电池全生命周期内荷电状态(SOC)和健康状态(SOH)的监测精度。该方法融合等效电路模型的先验知识与机器学习,设计了修正模型和补偿模型两种通用框架。实验验证表明,该方法在三种不同类型电池数据集上均表现出色,SOC和SOH估计误差较传统方法降低50%以上,且在未见工况下仍保持良好外推能力。模型具有强鲁棒性,在减少训练数据量和降低采样频率时性能稳定,并兼具物理可解释性。该框架无需离线测试和运行中校准,为电池安全监测提供了有效解决方案。

qq_21843433的博客 615

java匿名内部类

注:一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类,没有类名,根据多态,我们使用其父类名。//第四:调用父类对象方法,传递接口实现对象或父类的子类对象(重写或实现方法)如果希望多次创建对象,而且类的内容一样的话,那么就需要使用单独定义的实现类了。匿名内部类是省略了【实现类/子类名称】,但是匿名对象是省略了【对象名称】如果一个对象编译时的类型是接口,那么其运行的类型为实现这个接口的类。匿名内部类是一种特殊的局部内部类,它是通过匿名类实现接口。强调:匿名内部类和匿名对象不是一回事!...

qq_53518630的博客 5147

【学习系列】SAP RAP 16:RAP应用部署集成至Fiori Launchpad 【On-Premise】

本文详细介绍了如何将开发完成的RAP应用部署到S4HANA 2023 On-Premise环境并集成到Fiori Launchpad的完整流程。主要内容包括:1)通过ADT工具创建Fiori项目并配置外部IDE(VSCode);2)使用npm命令部署应用到系统;3)通过事务代码创建语义对象、磁贴目录和目标映射;4)配置PFCG角色分配;5)补充了部署失败解决方案、翻译问题处理、自定义主题设置以及登录页面LOGO修改等内容。文章提供了step-by-step的操作指南,帮助开发者将预览模式的应用正式部署到生产

DeveloperMrMeng的博客 632

java中匿名内部类的理解

java中匿名内部类的理解昨天晚上看json解析方式时突然看到关于匿名内部类,自己想了下发现竟然从来没有认真考虑过匿名内部类为什么叫这个,然后去网上查了下好像也没看出什么头绪来,早上上班看到一篇文章一下子就明白了,所以晚上回来自己试试.我们都说匿名内部类就是没有名字的内部类,哪个类没有名字呢?好多文章都是直接告诉你什么什么是匿名内部类,对于当时的我来说完全是一头雾水,如下面: Runnabl

一生寻找我的拉布 4860

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

java匿名内部类的理解

定义:没有显示名字的内部类 在没有实现内部类之前,我们要实现方法示例: /** *定义抽象类 */ public abstract class Person { public abstract void song(); } package com.example.demo.lambda; /** * @author: mxq * @date: 2019/11/1...

Chandler的博客 803

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

JAVA 匿名内部类 【小白快速理解】

匿名:没有名字。内部类:在其他类内部的类。即,没有名字的子类对象、或者接口的实现类对象。目的:在不定义子类的情况下创建Animal的子类对象,就可以使用匿名内部类。把子类继承父类,重写父类中的方法,创建子类对象,合成了一步完成,减少了其中创建子类的过程。或者将实现类实现接口,重写接口中的方法,创建实现类对象,合成了一步完成,减少了其中创建实现类的过程。匿名内部类在编写代码时没有名字,编译后系统会为自动为匿名内部类生产字节码,字节码的名称会以 外部类$1.class 的方法命名。

m0_52065616的博客 658

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Java匿名内部类只可使用一次的理解

匿名内部类只能使用一次,就不能在使用。 为了验证“只能使用一次的实际含义,首先在程序中实例化了两个对象。并且在相应的类中加入了实现接口的匿名内部类: package com.Anonymouse; public class AnonymousInnerClass { public static void main(String[] args) { Outer04 outer04 = new Outer04(); outer04.method(); O

qq_18995321的博客 1335

【Java 匿名内部类】简单理解

我前面的博客也有对内部类作简单的解释,这篇博客我们对匿名内部类详解,在这篇博客中你可以了解到匿名内部类的使用、匿名内部类要注意的事项、如何初始化匿名内部类、匿名内部类使用的形参为何要为final 匿名内部类一、使用匿名内部类内部类二、注意事项三、使用的形参为何要为final四、匿名内部类初始化五、匿名内部类的使用六、Java抽象类和接口的区别 一、使用匿名内部类内部类 一个继承了类的子类的匿名对象 或者一个实现了接口的实现类的匿名对象,创建格式如下: new 父类构造器(参数列表)|实现接口() .

qq_44682003的博客 531

java的知识点 抽象类 接口 匿名内部类 静态方法的 理解

普通类 抽象类 接口 三个大方向匿名内部类 也是重点,项目中经常遇见,各种的写法。静态方法 原理 的理解。

madong369的博客 469

从入门到实战,带你深入理解Java匿名内部类

在Java的世界里,有一种特殊的内部类,它没有名字,我们称之为“匿名内部类”。它被称为“匿名”是因为它没有明确的类名,只能在创建的时候使用一次,之后就无法再引用它了。看似神秘,实则内涵丰富,这就是匿名内部类的魅力所在。//Java代码示例@Override}.show();在这段代码中,我们定义了一个OuterClass类,然后在display方法中创建了一个匿名内部类,并在该匿名内部类中覆盖了show方法。

万猫学社 956

Java 快速理解匿名内部类,以及它的使用场景,注意事项

Java 快速理解匿名内部类 这篇文章主要讲解Java中匿名内部类的使用以及注意事项。匿名:没有名字的意思。内部类:写在其他类内部的类。匿名内部类的作用是简化代码。 原本我们需要创建子类或者实现类,去继承父类和实现接口,才能重写其中的方法。但是有时候我们这样做了,然而子类和实现类却只使用了一次(定义了一个对象)。这个时候我们就可以使用匿名内部类,不用去写子类和实现类,起到简化代码的作用。 匿...

执迷于技术和算法,让我们一起成长 2万+

AI如何帮你理解Java匿名内部类?

简单来说就是没有名字的局部内部类,直接在new对象时定义类体。它适合只使用一次的简单场景,比如事件处理。传统方式需要先定义单独的类实现接口,而匿名类可以直接在方法里就地解决。

GoldEagle19的博客 323

Java匿名内部类的理解

匿名内部类

Aa980905zjf的博客 257

关于匿名内部类的一些理解,java多态面试题

分布式技术专题+面试解析+相关的手写和学习的笔记pdf还有更多Java笔记分享如下:由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)[外链图片转存中…

m0_61369275的博客 919

一篇文章理解Java的匿名内部类语法

什么是匿名内部类? 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,类B则称为外部类。 匿名内部类 是内部类的简化写法。它的本质是一个带具体实现的 父类或者父接口的 匿名的 子类对象 如果接口的实现类(或者是父类的子类)只需要使用唯一的一次,那么这种情况下就可以省略该类的定义,而改为使用 匿名内部类。 特征:声明匿名内部类的同时创建该类的对象 前提 存在一个类或者接口,这里的类可以是抽象类也可以是普通类。 语法格式: 继承父类: new 父类名称([实参列表]){ // 类的成员列表 }

sun10367的博客 404

深入理解Java匿名内部类

【内部类】 内部类就是将一个类定义到另一个类中,类中再嵌套一个类,所以可以划分为内部类以及外部类。 上面这种叫做成员内部类,有什么局限呢? 成员内部类可以直接访问外部类的成员变量以及成员方法。 都是外部类就不可以直接访问内部类的成员变量和成员方法。 一句话总结:外面看不到里面,里面看得到外面。 外面如果想要看到里面,需要请里面的人(是实例的,具体的对象)出来讲解内部的世界和情况。 外...

抛弃幻想,准备斗争 575
上一篇: java 模版设计模式
下一篇: String的个人记录
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值