内部类和lambda表达式

java 匿名内部类 和 Lambda 表达式 说明:将匿名内部类定义在接口中的 static 方法中,通过接口名.静态方法.匿名内部类的方法来使用接口//定义接口//服务方法//定义静态方法用来放置匿名内部类{ //匿名内部类@OverrideSystem.out.println(name + "连接成功......");//别忘了这个分号//通过 接口名.静态方法.匿名内部类的方法 来使用接口USB02.ttt().service("键盘");Lambda 表达式:应用在含一个抽象方法的接口环境下的一种简化定义形式。 阅读详情

内部类和lambda表达式


内部类

概念

在一个类的内部又定义了一个类,此时内部的类就是内部类;(类中类)

访问特点

(1).内部类可以直接访问外部类的成员,包括私有
(2).外部类要访问内部类的成员,必须创建对象

成员内部类

放在了成员变量位置
在这里插入图片描述

创建对象格式:外部类名.内部类名 对象名=外部类对象.内部类对象;
在这里插入图片描述
或者
在这里插入图片描述
在这里插入图片描述

局部内部类

局部内部类是在方法中定义的类,所有外界是无法直接使用,需要在方法内部创建对象并使用
该类可以直接访问外部类的成员,也可以方法内的局部变量
创建对象格式:内部类 对象名=new 内部类;
在这里插入图片描述
在这里插入图片描述

注意:只能在外部类的方法中创建对象

匿名内部类

概念

在一个外部类的方法中创建了一个没有名字的某个类的子类对象,就是匿名内部类;
说白了就是一个继承了该类的子类匿名对象,或者是一个实现了该接口的实现类匿名对象

前提

存在一个类或者接口,这里的类可以是具体类也可以是抽象类

匿名对象

创建了对象之后,没有给对象起名字

区别

匿名内部类创建出来的对象如果没有起名字,则是匿名对象,如果创建出来的对象起名字了,则不是匿名对象;

语法格式

new 父类名(){重写方法的内容}在这里插入图片描述
在这里插入图片描述

使用建议

(1).如果创建出来的匿名内部类只使用一次,建议直接用这个对象调用方法即可
(2).如果创建出来的匿名内部类多次使用,必须给这个对象起个名字,以多态的形式保存下来

lambda表达式

概述

函数式编程思想,强调的是最终要做的事情,而不再让我们关注编写类,类的关系,创建对象的过程;

使用前提

(1).方法的参数必须是接口类型且接口中有且仅有一个抽象方法需要实现类重写;
(2).只有在调用方法的时候,吧lambda作为一个实参进行传递或作为方法的返回值进行返回时才可以使用;

实现理念

凡是可以推导出来的,都可以省略不写

语法格式

(仿照接口的方法的参数类型) ->{要做的事情}
格式:(形式参数) -> {代码块}
形式参数:如果有多个参数,参数之间用逗号隔开;如果没有参数,留空即可
->:由英文中划线和大于符号组成,固定写法。代表指向动作
代码块:是我们具体要做的事情,也就是以前我们写的方法体内容
在这里插入图片描述在这里插入图片描述
小结:拿着形式参数去做代码块中的事情

省略格式

(1).参数的数据类型可以省略不写
(2).当参数类型只有一个时,小括号可以省略
(3).当方法体只有一行语句时,可以省略大括号,分号,甚至是return;

lambda表达式与匿名内部类的区别

(1).所需类型不同:
匿名内部类:可以是接口,也可以是抽象类,还可以是具体的类(只要不是final的类都可以使用)
lambda表达式:只能是接口,且接口中有且仅有一个抽象类需要重写
(2).使用限制不同:
如果接口中仅有一个抽象方法,可以使用lambda表达式,也可以使用匿名内部类;
如果接口中有多个抽象方法,只能使用匿名内部类,不能使用lambda表达式
(3).实现原理不同
匿名内部类:编译之后,产生一个单独的.class字节码为文件
lambda表达式:编译之后,.class字节码文件只会在运行时动态生成,用完及删

零基础实战:用 Docker 和 vLLM 本地部署 BGE-M3 文本嵌入模型 BGE-M3是北京智源推出的多功能文本嵌入模型,支持跨语言语义匹配。利用Docker容器化和vLLM框架可高效部署该模型,实现本地运行的优势包括隐私保护、定制化和成本控制。通过配置Docker环境,使用vLLM官方镜像加载模型,并进行文本嵌入测试验证效果。该方案适合开发者快速验证模型能力,或集成到本地NLP流程中。 阅读详情

相关推荐

告别单一查询!MultiQueryRetriever在LangChain中的高级用法解析

本文深入解析了LangChain中的MultiQueryRetriever高级用法,该工具通过大语言模型自动生成多样化查询,显著提升文档检索的召回率和准确性。文章详细介绍了其核心机制、高级配置调优策略以及在多语言和专业领域中的实际应用,为开发者提供了优化知识库问答系统的实用方案。

weixin_28730927的博客 271

java之Lambda表达式与Stream流

Lambda,在我现在的技术来看,就是为了简化代码的它允许我们将函数当成参数传递给某个方法,或者把代码本身当作数据处理。很多JVM平台上的语言(Groovy、Scala等)从诞生之日就支持Lambda表达式,但是Java开发者没有选择,只能使用匿名内部类代替Lambda表达式。

梦想是很难很难的,所以先勇敢一点 1893

别再只会regress了!用Stata的csdid命令搞定多期DID的完整实操指南

本文详细介绍了如何在Stata中使用csdid命令进行多期DID分析,解决传统DID方法在交错处理场景下的局限性。通过完整的实操指南,包括环境搭建、核心语法、结果解读和高阶应用,帮助研究者更准确地评估政策效果,适用于计量经济学和实证研究领域。

weixin_30236595的博客 582

“Lambda ”这一篇搞定~

关于内部类一共可以分为四种:“成员内部类”、“局部内部类”、“匿名内部类”、“静态内部类”,其中“匿名内部类”需要重点掌握,这里呢也介绍这一种,另外三种较为简单,了解即可。有兴趣的伙伴可以普及~匿名内部类:在类中定义一个没有名称只有类体的类,一般使用在抽象类和实现类(接口)中。接口名称 对象名 = new 接口名称() {// 覆盖重写所有抽象方法下面分别从这两种形式去认识匿名内部类,废话不说,直接上代码!!

WuHuaSen的博客 480

原神真端,原神服务端,虚拟机启动部署傻瓜式教学

没玩过抽卡 游戏想体验一下抽卡的感觉,听说原神有真端了,所以弄一个局域网的服务体验一下,这里要感谢一些服务端的分享者。

azyouyouyou的博客 1万+

13个GNS3 3.0.5 appliances设备模板镜像合集:IOSv/L2,IOU L2/L3,以及IOS-XE

13个GNS3 appliances设备模板:IOSv/L2,IOU L2/L3,以及IOS-XE合集

haierccc的博客 1070

Java基础入门之——lambda表达式、方法引用

Lambda表达式

qq_53308984的博客 462

YOLOv8 改进:添加 LSK 注意力机制

通过添加 LSK 注意力机制,YOLOv8 能够更有效地捕捉特征图上的重要信息,提高检测性能,尤其是在复杂场景下展现出色的表现。这种方法不仅适用于资源受限的设备,还能在丰富多样的实际应用中提供强劲支持。

走向CTO的路上... 1221

Lambda表达式和匿名内部类的区别

所需类型不同:匿名内部类:可以是抽象类,可以是接口,也可以是具体类Lambda表达式:只可以是接口 使用限制不同:如果接口中有且仅有一个抽象方法,可以使用Lambda表达式,也可以使用匿名内部类如果接口中的抽象方法不止一个,就只能使用匿名内部类,不能使用Lambda表达式 实现原理不同:匿名内部类在编译之后会产生一个单独的.class字节码文件Lambda表达式在编译之后不会产生一个单独的.cl...

阿水的博客 154

点云处理实操(四) -PCL中的点云三角化

点云处理实操(四) -PCL中的点云三角化

cangqiongxiaoye的博客 939

SAP 系统和银行系统通过 SM2 加密算法进行集成

SM2 是基于椭圆曲线离散对数问题(ECDLP)的一种公钥密码算法。椭圆曲线加密的核心原理,是利用了一个数学难题:在椭圆曲线群上,已知曲线上两点的运算结果,逆向推导出这两个点的具体信息是非常困难的。这样的复杂度使得基于椭圆曲线的密码体制比传统的 RSA 更加难以破解。在 SM2 加密中,公钥和私钥的生成与传统的椭圆曲线加密类似。选择一个椭圆曲线和一个基点 P。使用私钥 d,计算公钥 P’ = d * P。私钥 d 保密,而公钥 P’ 可公开分发,用于加密数据。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1212

内部类和Lambda表达式

关于四种内部类和Lamdba表达式的说明

explorer363的博客 308

C#串口通信从入门到精通(27)——高速通信下解决数据处理慢的问题(20ms以内)

本文介绍如何在高速通信情况下解决串口接收的数据来不及处理的问题,由高级工程师多年经验总结而成,绝对是串口领域的实战经验!

qq_34059233的博客 6808

lambda表达式和匿名内部类

Lambda表达式是一种匿名函数,它可以作为一个值来传递。Lambda表达式通常包含一个或多个参数,一个表达式或一个语句块,并且它们可以立即执行。在技术上,Lambda表达式是一个闭包,因为它可以访问其定义范围之外的变量(只要这些变量是最终的或实际上不可修改的)。Lambda表达式适合于简单、短小的功能实现,能够显著提升代码的可读性和简洁性。匿名内部类则更适合于实现复杂的逻辑或者需要覆盖多个方法的情况。在选择使用哪种方式时,应根据实际需求和上下文来决定。

m0_68319667的博客 1369

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

循循渐进详解内部类和Lambda表达式

文章目录内部类 与 Lambda表达式一、内部类2、实例化内部类3、内部类私有化4、内部接口5、静态内部类6、局部内部类7、匿名内部类二、Lambda表达式1、函数式编程思想概述2、Lambda表达式初体验3、Lambda表达式的标准格式4、Lambda表达式的使用前提5、Lambda表达式的练习5.1、无参无返回值的抽象方法5.2、有参无返回值的抽象方法5.3、有参有返回值的抽象方法6、Lambda表达式的省略模式7、Lambda表达式和匿名内部类的区别 内部类 与 Lambda表达式 一、内部类 程序在

Window_mouse的博客 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

lambda表达式和 内部类

1.为什么引入lambda表达式 lambda表达式是一个可传递的代码块,可以在以后执行一次或多次。能够让代码稍简洁一些。 2.lambda表达式的语法 lambda表达式形式: 参数,箭头(->) 一个表达式。如果代码要完成的计算无法放在一个表达式中,可以把代码放在{}中,并包含显式的return语句。 即使lambda表达式没有参数,仍然要提供空括号,就像无参方法一样: ()->{for (int i=100;i>=0;i--)System.out.println(i);.

Carol__a的博客 732

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java中的内部类和Lambda表达式

一、使用内部类 1.在外部类使用内部类。不要在外部类的静态成员中使用非静态内部类,因为静态成员不能访问非静态成员。 2.在外部类使用非静态内部类。如果希望在外部类以外的地方访问内部类,则内部类不能使用private访问控制权限,private修饰的内部类只能在

奔跑的小车车博客专栏 1559

匿名内部类和Lambda表达式

1、 内部类 1.1 内部类的基本使用 概念 在一个类中定义一个类 定义格式 class 外部类名{ 修饰符 class 内部类名{ } } 例 class Outer { public class Inner { } } 内部类的访问特点 内部类可以直接访问外部类的成员,包括私有 外部类要访问内部类的成员,必须要创建对象 1.2 成员内部类 定义位置 在类中方法外,跟成员变量道理一样 外界创建成员内部类格式 外部类名.内部类名 对象名 = 外部

辰伏的博客 284

Java匿名内部类和Lambda表达式

Java匿名内部类和Lambda表达式一、Java匿名内部类二、JavaLambda表达式全部代码:代码运行结果: 一、Java匿名内部类 我们在使用匿名内部类时,需要记住以下几个重要的知识点:  ①匿名内部类不能有构造方法。 (因为匿名内部类是没有类名的)  ②匿名内部类不能定义任何静态成员、方法和类。  ③匿名内部类不能是抽象类。(因为在创建匿名内部类的时候,会立即创建匿名内部类的对象。从而也可知匿名内部类必须实现它的抽象父类或者接口里包含的所有抽象方法)  ④匿名内部类不能是public,prote

faramita_of_mine的博客 2104

java内部类和lambda表达式

java内部类,lambda表达式

qq_36827283的博客 450

Java内部类和 Lambda 表达式的命名规则

内部类和 Lambda 表达式的命名规则 1) 成员内部类,包括普通成员内部类、静态成员内部类,外部类名$内部类名 2) 局部内部类,外部类名$n内部类名,n 从 1 开始,每个函数都有不同的 n 值 3) 匿名内部类,外部类名$n,n 从 1 开始 4) Lambda 表达式类,外部类名$$Lambda$n,n 从 1 开始。 (注:控制台输出后面还会加上斜杠+数字,比如:Main$$Lamb...

a3192048的博客 2321

Java匿名内部类和lambda表达式

在定义一个抽象类或接口以后,我们无法将其直接实例化。那么怎么将其实例化呢?最容易想到的是再定义一个类,并继承这个抽象类(或实现这个接口),然后把抽象方法补全,就可以对这个子类进行实例化了。那么实际应用中,定义如此多个class是比较繁琐的,因此这里引入了匿名内部类和Lambda表达式的概念。 匿名内部类 首先看一段简单的代码: interface Behavior { void eat(S...

jackzhang11的博客 817
上一篇: 面向对象(多态)
下一篇: 包装类和数组
双标男
博客等级 码龄7年 8粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值