前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java-回调/Callback

Java-回调/Callback

作者头像
Fisherman渔夫
发布2019-07-31 14:39:14
7000
发布2019-07-31 14:39:14
举报
文章被收录于专栏:渔夫渔夫

版权声明: https://blog.csdn.net/li_xunhuan/article/details/88990724

本文代码部分来自于:https://www.cnblogs.com/heshuchao/p/5376298.html 由于我本人增加了颇多的个人理解,所以转为原创,若有错误,请指正

代码语言:javascript
复制
代码段1.1:
public class Student	
{
private String name = null;

public Student(String name)
{
    // TODO Auto-generated constructor stub
    this.name = name;
}

public void setName(String name)
{
    this.name = name;
}

private int calcADD(int a, int b)
{
    return a + b;
}

public void fillBlank(int a, int b)
{
    int result = calcADD(a, b);
    System.out.println(name + "心算:" + a + " + " + b + " = " + result);
}
}
代码段1.2:
public class Test
{
public static void main(String[] args)
{
    int a = 1;
    int b = 1;
    Student s = new Student("小明");
    s.fillBlank(a, b);
}
}

代码段2.1:
public class Calculator
{
public int add(int a, int b)
{
    return a + b;
}
}
代码段2.2:
public class Student
{
private String name = null;

public Student(String name)
{
    // TODO Auto-generated constructor stub
    this.name = name;
}

public void setName(String name)
{
    this.name = name;
}

@SuppressWarnings("unused")
private int calcADD(int a, int b)
{
    return a + b;
}

private int useCalculator(int a, int b)
{
    return new Calculator().add(a, b);
}

public void fillBlank(int a, int b)
{
    int result = useCalculator(a, b);
    System.out.println(name + "使用计算器:" + a + " + " + b + " = " + result);
}
}

代码段2.3:
public class Test
{
public static void main(String[] args)
{
    int a = 168;
    int b = 291;
    Student s = new Student("小明");
    s.fillBlank(a, b);
}
}



代码段3.1:
public class SuperCalculator
{
public void add(int a, int b, Student  xiaoming)
{
    int result = a + b;
    xiaoming.fillBlank(a, b, result);
}
}


代码段3.2:
public class Student
{
private String name = null;

public Student(String name)
{
    // TODO Auto-generated constructor stub
    this.name = name;
}

public void setName(String name)
{
    this.name = name;
}

public void callHelp (int a, int b)
{
    new SuperCalculator().add(a, b, this);
}

public void fillBlank(int a, int b, int result)
{
    System.out.println(name + "求助小红计算:" + a + " + " + b + " = " + result);
}
}



代码段3.3:
public class Test
{
public static void main(String[] args)
{
    int a = 26549;
    int b = 16487;
    Student s = new Student("小明");
    s.callHelp(a, b);
}
}

1、2、3代码执行过程分析: 代码段1:

李寻欢
李寻欢

代码段2:

李寻欢
李寻欢

代码段3:

李寻欢
李寻欢

总结:

李寻欢
李寻欢

重点分析代码段3的回调Callback功能的实现:

李寻欢
李寻欢

我们从简单的加法求和中看到面向过程和面向对象的区别:

李寻欢
李寻欢
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年04月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档