java匿名类和匿名函数的概念和写法
前言:
Lambda流式操作是Java8中重要的特性,lambda表达式核心概念为 函数式接口、::、-> 等基本语法,可以大大减少代码量的编写,使代码更加优雅
1、只有一个抽象函数的接口,就是函数式接口
2、:: 可以称之为域运算符,主要是用来获取方法
3、-> 的语法为 (变量或参数)->{代码体},是匿名函数的写法。也叫变量和代码的分隔符
4、当只获取一个方法属性的时候 :: 和 -> 可以通用
介绍:
接口:
1】接口可以定义在另一个类的内部
2】接口中的方法都是抽象方法
3】接口中的常量都是静态常量类
1】类可以定义在另一个类的内部
2】也可以定义为内部静态类,使用 static 关键字
3】还可以定义为局部内部类,定义在方法中
一、什么是Lambda表达式?
lambda表达式是为了简写代码的写法
二、什么是函数式接口?
1】只有一个抽象方法的接口就是函数式接口
//1.定义一个函数式接口。只有一个抽象方法的接口就是函数式接口
interface ILike{void testLambda();
}
三、什么是匿名内部类?
匿名内部类的特点:
1】没有类名
2】必须借助接口或父类
3】通过实例化函数式接口就可以完成匿名内部类实现此接口并重写方法
//5.匿名内部类,没有类名称,必须借助接口
like = new ILike() {@Overridepublic void testLambda() {System.out.println("i like lambda4");}
};
like.testLambda();
四、用 Lambda 简化匿名内部类的写法
1】匿名内部类是为了省去类名的写法
2】Lambda 简化写法不但可以省去类名,还可以省去接口名和函数名。因为只有一个抽象方法,可以直接实现并指向这个抽象方法和方法体
//6.用lambda简化,因为接口中只有一个函数,所以可以直接省略实例化的接口名和函数名
like = () -> {System.out.println("i like lambda5");
};
like.testLambda();
概括:
1】匿名函数写法和匿名类写法的前提必须基于函数式接口
2】匿名函数写法和匿名类写法其本质是同一个东西,只是简化写法不同
3】使用Lambda表达式简写匿名函数时,可以同时省略实现类名、函数名。除此外也可以使用传统写法
java匿名类和匿名函数的概念和写法相关推荐
- java匿名类和匿名对象及this的其他用法
/* 匿名内部类:就是内部类的简写格式. 必须前提:内部类必须继承或者实现一个类或者接口. 匿名内部类其实就是一个匿名 子类对象. 格式:new 父类对象 or 接口(){子类内容:(覆盖父类的, 而 ...
- Java中匿名子类 的 匿名对象、匿名子类 的 非匿名对象、非匿名类 的 匿名对象、非匿名类 的 非匿名对象
/*** @Author: YuShiwen* @Date: 2020/11/18 2:06 PM* @Version: 1.0*/ public class AnonymousTest {publi ...
- .NET中那些所谓的新语法之二:匿名类、匿名方法与扩展方法
开篇:在上一篇中,我们了解了自动属性.隐式类型.自动初始化器等所谓的新语法,这一篇我们继续征程,看看匿名类.匿名方法以及常用的扩展方法.虽然,都是很常见的东西,但是未必我们都明白其中蕴含的奥妙.所以, ...
- java匿名类_Java匿名类
java匿名类 Java anonymous class are like local class or inner class without a name. We can use java ano ...
- java 内部匿名类_java匿名类和匿名内部类详解
匿名类是指没有类名的内部类,必须在创建时使用 new 语句来声明类.其语法形式如下:new() { //类的主体 }; 这种形式的 new 语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一 ...
- Java中的匿名类和匿名对象
匿名解释 匿名就是没有名字的对象,在创建对象时,只通过new的动作在堆内存开辟空间,却没有把堆内存空间的地址值赋值给栈内存的某个变量用以存储 匿名类/对象其实就是类/对象,对象具有的功能匿名类/对象都 ...
- 匿名内部类和匿名类_匿名schanonymous
匿名内部类和匿名类 Everybody loves a fad. You can pinpoint someone's generation better than carbon dating by ...
- 第八节:语法总结(2)(匿名类、匿名方法、扩展方法)
一. 匿名类 1. 传统的方式给类赋值,需要先建一个实体类→实例化→赋值,步骤很繁琐,在.Net 3.0时代,微软引入匿名类的概念,简化了代码编写,提高了开发效率. 匿名类的声明语法: var o ...
- 深入理解Java Lambda表达式,匿名函数,闭包
前言 对于Lambda表达式一直是知其然不知其所以然,为了搞清楚什么是Lambda表达式,以及Lambda表达式的用法和作用,本文应运而生当做学习笔记分享出来,欢迎指正交流. 什么是Lambda 让我 ...
最新文章
- 201771010111李瑞红《面向对象的程序设计》第八周实验总结
- phpstudy2014 php7.0,phpstudy下载_phpStudy下载2014 官方版_php环境集成包 1.0_零度软件园...
- 机器人抓取领域性能评估标准
- 当老板说要把公司当家时,他在说...
- vs2019怎么调整字体大小_考研倒计时23天,答题卡怎么使用?来看看正确的使用方法吧!...
- access开发精要(5)-合计group by
- EOJ_1070_下落的小球
- 分享一款最近比较火爆的宝石迷情游戏游戏源码安卓版
- php session 前缀,PHP文件包含--session
- React 第十章 状态提升
- Spring MVC学习笔记(七)
- Live reload
- 关于民族类型的下拉框
- 电视剧 | 黑镜S5E3 瑞秋洁柯小艾希莉
- css鼠标移入变成小手
- SAS计算IV代码分享
- Windows xp定时关机命令
- OOP的六大原则+一法则
- firefox的about:config说明及配置
- 百度云智峰会 百度天像打造多媒体新生态