Java闭包和回调

java

Java中的闭包与回调可以通过成员内部类来实现。

简单的来说闭包就是返回一个内部类对象,这个内部类对象包含了外部类对象的信息(因为一个内部类对象定依托于一个外部类对象)。

回调就是在闭包的基础上实现的,返回的内部类对象可以调用外部类中的方法。

例子:(不是很具有代表性)

public class Class {

private int classId;

private String className;

public Class() {

}

public Class(int classId, String className) {

this.classId = classId;

this.className = className;

}

public int getClassId() {

return classId;

}

public void setClassId(int classId) {

this.classId = classId;

}

public String getClassName() {

return className;

}

public void setClassName(String className) {

this.className = className;

}

private class Student{

private int studentNumber;

private String monitor;

public Student(int studentNumber, String monitor) {

this.studentNumber = studentNumber;

this.monitor = monitor;

}

public int getStudentNumber() {

return studentNumber;

}

public void setStudentNumber(int studentNumber) {

this.studentNumber = studentNumber;

}

public String getMonitor() {

return monitor;

}

public void setMonitor(String monitor) {

this.monitor = monitor;

}

public String getClassInfo(){

String info = getClassId() + getClassName();

return info;

}

}

public Student getStudent(){

return new Student(45,"张三");

}

public static void main(String[] args) {

Class c1 = new Class(1,"软件工程2016-2班");

System.out.println(c1.getStudent().getClassInfo());

}

}

定义了Class类的对象后,可以通过其成员方法getStudent()获取一个内部类对象,取得其内部类对象后通过调用内部类对象的getClassInfo()方法获取班级信息,此方法中调用的是外部类中的方法从而实现回调。

以上是 Java闭包和回调 的全部内容, 来源链接: utcz.com/z/390029.html

回到顶部