Lambda达式

本文介绍了函数式编程思想,强调关注做什么而非怎么做,并通过对比冗余的Runnable代码,展示了Lambda表达式如何简化Java中的多线程实现。Lambda的格式和使用被详细阐述,包括无参数无返回值、有参数有返回值的示例,指出Lambda表达式需基于单一抽象方法的接口。
摘要由CSDN通过智能技术生成

1.函数式编程思想概述:
在数学中,函数就是有输入量、输出量的一套计算方案,也就是"拿什么东西做什么事情"。相对而言,面向对象过分强调"必须通过对象的形式来做事情",而函数式思想则尽量忽略面向对象的复杂语法一强调做什么,而不是以什么形式做。 在这里插入图片描述
2.冗余的Runnable代码:
1,在这里插入图片描述
2,
在这里插入图片描述
打印一下:
在这里插入图片描述
简化代码:
在这里插入图片描述
照样实现:
在这里插入图片描述
代码还可以继续简化:

在这里插入图片描述
上述就是使用匿名内部类去实现多线程。

在这里插入图片描述
根据上述所说的情况我们进行 编程思想的转换:
要关注做什么 而不是怎么做。

	当我们需要从北京到上海时,可以选择高铁、汽车、骑行或是徒步。我们的真正目的是到达上海,而如何才能到达上海的形式并不重要,所以我们一直在探索有没有比高铁更好的方式--搭乘飞机。

在这里插入图片描述
lambda的实现:
使用Lambdo表达式,实现多线程。
在这里插入图片描述
对比一下,()- >就实现了。比匿名内部类还要简单。

匿名内部类的好处与弊端:
一方面,匿名内部类可以帮我们省去实现类的定义;另一方面,匿名内部类的语法-确实太复杂了!
在这里插入图片描述
Lambda达式的格式:

在这里插入图片描述
eg:
在这里插入图片描述
上述代码:其中()就是ran方法的(),没有参数就空着,箭头就是把这个东西传给后面的方法体里面去。

练习:
无参数无返回值:
在这里插入图片描述
按照以前的学习方式:(Cook 直接在invokeCook里面做参数,不报错?老方法 是 要先做一个实现接口的实现类,实现类重写接口的抽象方法 然后再main中new实现类,再调用)
在这里插入图片描述
使用lambda表达式:

在这里插入图片描述

练习 有参数有返回值:
原:
在这里插入图片描述
lambda:
在这里插入图片描述
既:
有参数写参数 再写返回值给返回。

Lambda省略格式

在这里插入图片描述
在这里插入图片描述
eg1:
在这里插入图片描述
eg2:
在这里插入图片描述
eg3:
在这里插入图片描述

lambda的使用前提:
在这里插入图片描述
只能有一个抽象方法,两个就不行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值