zoukankan      html  css  js  c++  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()方法获取班级信息,此方法中调用的是外部类中的方法从而实现回调。

  • 相关阅读:
    opacity背景层透明导致文字也透明
    [css3]叉叉旋转效果
    [css]当父元素的margin-top碰上子元素的margin-top
    Python_Mix*异常处理
    Python_Mix*OS模块,序列化模块种的json,pickle
    Python_Mix*random模块,time模块,sys模块,os模块
    Python_Mix*re模块基础方法,进阶,正则表达式的使用
    Python_Mix*re模块,元字符,量词
    Python_Mix*匿名函数,sorted,filter,map,递归函数,二分法查找
    Python_Mix*内置函数
  • 原文地址:https://www.cnblogs.com/chiweiming/p/11836495.html
Copyright © 2011-2022 走看看