java总结

<span class="portrait"></span><p class="slideShine">xiaofang.bk</p> / 2025-02-10 / 原文

java闭包:

//Closure 类是一个内部类,它可以访问外部类 TeacherProgramer 的成员变量 name。这确实是一种闭包的体现,因为它捕获了外部类的状态。
public
class Programer { public String name; public Programer() { } public Programer(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void wrok() { System.out.println(name + "在干xxx"); } } public interface Teacher { void work(); } public class TeacherProgramer extends Programer { public TeacherProgramer() { } public TeacherProgramer(String name) { super(name); } public class Closure implements Teacher { public void work() { System.out.println(name + "hello word"); } } public Teacher getCallBack() { return new Closure(); } public static void main(String[]args){ TeacherProgramer teacherProgramer=new TeacherProgramer("法外狂徒张三"); teacherProgramer.getCallBack().work(); } }

 

 

//使用Lambda表达式的例子中,我们创建了一个实现了 Teacher 接口的匿名函数,它捕获了 teacherProgramer 对象的 name 成员,并可以在调用 work 方法时使用它。这就是Java 8及更高版本中更常见的闭包
public
static void main(String[] args) { TeacherProgramer teacherProgramer = new TeacherProgramer("法外狂徒张三"); Teacher callBack = () -> System.out.println(teacherProgramer.name + "hello word"); callBack.work(); }