java常见小错误(三):内部类的隐式“闭包”
java常见错误系列文章
下一篇:java常见小错误(二):Java迭代器iterator和for循环的区别
往期文章推荐:
java小技巧(三):JAVA 交集,差集,并集
java小技巧(二):进制转换
java常见小错误(一):变量类型自动转换与强制转换
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权);
本博客的内容来自于:java常见小错误(三):内部类的隐式“闭包”;
学习、合作与交流联系q384660495;
本博客的内容仅供学习与参考,并非营利;
一、什么是闭包
闭包函数:声明在一个函数中的函数,叫做闭包函数。
闭包:内部函数总是可以访问其所在的外部函数中声明的参数和变量,即使在其外部函数被返回(寿命终结)了之后。
闭包是一个可调用的对象,它记录了一些信息,这些信息来自于创建它的作用域。通过这个定义,可以看出内部类是面向对象的闭包,因为它不仅包含创建内部类的作用域的信息,还自动拥有一个指向此外围类对象的引用,在此作用域内,内部类有权操作所有的成员,包括private成员。
闭包形成的条件
- 函数嵌套
- 内部函数引用外部函数的局部变量
除了面试,在实践中,闭包有两个非常重要的应用场景。分别是模块化与柯里化。更多闭包的内