java实现接口回调(java接口回调的概念和作用)

网友投稿 271 2023-01-04


本篇文章给大家谈谈java实现接口回调,以及java接口回调的概念和作用对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享java实现接口回调的知识,其中也会对java接口回调的概念和作用进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Java 技巧:用 Java 实现回调例程

熟悉 MS Windows 和 X Window System 事件驱动编程模型的开发人员 习惯于传递在某种事件发生时调用(即 回调 )的函数指针 Java 的面向对象模型目前并不支持方法指针 这样似乎就不可能使用这种很好的机制 但我们并不是一点办法都没有! Java 的接口支持提供了一种获得回调的等价功能的机制 其技巧就是 定义一个简单接口 并在该接口中声明我们要调用的方法 例如 假定我们希望在某个事件发生时得到通知 我们可以定义一个接口 public interface InterestingEvent{// 这仅是一个常规方法 因此如果需要 // 它可有返回值 也可接收参数 public void interestingEvent ();}这使得我们可以控制实现该接口的类的任何对象 因此 我们不必关心任何外部类型信息 与在将 C++ 代码用于 Motif 时使用窗口小部件的数据域来容纳对象指针的难以控制的 C 函数相比 这种方法要好得多 发出事件信号的类必须等待实现了 InterestingEvent 接口的对象 并在适当时候调用 interestingEvent() 方法 public class EventNotifier{private InterestingEvent ie;private boolean somethingHappened;public EventNotifier (InterestingEvent event){// 保存事件对象以备后用 ie = event;// 还没有要报告的事件 somethingHappened = false;}// public void doWork (){// 检查在别处设置的谓词 if (somethingHappened){// 通过调用接口的这个方法发出事件信号 ie interestingEvent ();}// }// }在上例中 我使用 somethingHappened 谓词来跟踪是否应触发事件 在许多情况下 调用此方法足以保证向 interestingEvent() 发出信号 希望接收事件通知的代码必须实现 InterestingEvent 接口 并将自身引用传递给事件通知程序 public class CallMe implements InterestingEvent{private EventNotifier en;public CallMe (){// 创建事件通知程序 并将自身引用传递给它 en = new EventNotifier (this);}// 为事件定义实际的处理程序 public void interestingEvent (){// 噢!必定发生了感兴趣的事件!// 执行某些操作 }// } lishixinzhi/Article/program/Java/JSP/201311/19423

java中的接口的回调?

接口回调是指java实现接口回调:可以把使用某一接口java实现接口回调的类创建java实现接口回调的对象的引用赋给该接口声明的接口变量java实现接口回调,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。看下面示例。
interface People{
void peopleList();
}
class Student implements People{
public void peopleList(){
System.out.println("I’m a student.")java实现接口回调
}
}
class Teacher implements People{
public void peopleList(){
System.out.println("I’m a teacher.");
}
}
public class Example{
public static void main(String args[]){
People a; //声明接口变量
a=new Student(); //实例化,接口变量中存放对象的引用
a.peopleList(); //接口回调
a=new Teacher(); //实例化,接口变量中存放对象的引用
a.peopleList(); //接口回调
}
}
结果:
I’m a student.
I’m a teacher.

有关接口回调的java题,求解。

下面是UnitPrice接口代码:

public interface UnitPrice {

  public double unitprice();

}

下面是电视机类代码:

public class Television implements UnitPrice {

  @Override

  public double unitprice() {

      return 3500d;

  }

}

下面是计算机类代码:

public class Computer implements UnitPrice {

  @Override

  public double unitprice() {

      return 7800d;

  }

}

下面是手机类代码:

public class Mobile implements UnitPrice {

  @Override

  public double unitprice() {

      return 2500d;

  }

}

下面是公共类代码:

import java.util.Scanner;


public class Common {

  static double get(UnitPrice u) {

      return u.unitprice();

  }

  @SuppressWarnings("resource")

  public static void main(String[] args) {

      System.out.print("请输入电视机的销售个数:");

      Scanner scanner = new Scanner(System.in);

      int television_num = scanner.nextInt();

      System.out.print("请输入计算机的销售个数:");

      scanner = new Scanner(System.in);

      int computer_num = scanner.nextInt();

      System.out.print("请输入手机的销售个数:");

      scanner = new Scanner(System.in);

      int mobile_num = scanner.nextInt();

      double television_price = television_num * (get(new Television()));

      System.out.println("电视机的销额是:" + television_price);

      double computer_price = computer_num * (get(new Computer()));

      System.out.println("计算机的销额是:" + computer_price);

      double mobile_price = mobile_num * (get(new Mobile()));

      System.out.println("手机的销额是:" + mobile_price);

      System.out.println("总销额是:" + (television_price + computer_price + mobile_price));

      scanner.close();

  }

}

下面是执行后的效果截图:

麻烦您看一下,是否能够满足要求。

java中怎样定义回调函数

程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。目的达到。在C/C++中,要用回调函数,被掉函数需要告诉调用者自己的指针地址,但在JAVA中没有指针,怎么办?我们可以通过接口(interface)来实现定义回调函数。\x0d\x0a假设我是程序员A,以下是我的程序a:\x0d\x0a[java]viewplaincopyprint?\x0d\x0apublicclassCaller\x0d\x0a{\x0d\x0apublicMyCallInterfacemc;\x0d\x0a\x0d\x0apublicvoidsetCallfuc(MyCallInterfacemc)\x0d\x0a{\x0d\x0athis.mc=mc;\x0d\x0a}\x0d\x0a\x0d\x0apublicvoidcall(){\x0d\x0athis.mc.method();\x0d\x0a}\x0d\x0a}\x0d\x0a还需要定义一个接口,以便程序员B根据我的定义编写程序实现接口。\x0d\x0a\x0d\x0apublicinterfaceMyCallInterface\x0d\x0a{\x0d\x0apublicvoidmethod();\x0d\x0a\x0d\x0a}\x0d\x0a于是,程序员B只需要实现这个接口就能达到回调的目的了:\x0d\x0apublicclassBimplementsMyCallInterface\x0d\x0a{\x0d\x0apublicvoidmethod()\x0d\x0a{\x0d\x0aSystem.out.println("回调");\x0d\x0a}\x0d\x0a\x0d\x0apublicstaticvoidmain(Stringargs[])\x0d\x0a{\x0d\x0aCallercall=newCaller();\x0d\x0acall.setCallfuc(newB());\x0d\x0acall.call();\x0d\x0a}\x0d\x0a}

请问JAVA中接口中自动回调方法的原理是什么?

那就是继承,你实现了一个接口就是这个接口的子类了,当然就可以调用了。子类自动继承父类的方法,但是接口的方法是抽象的你必须要实现,所有可以确保你实现这个接口就必须有这个接口的方法了。而且子类变父类是可以直接用的,所以就可以自动调用了。
最好的方式就是去看下源代码,你就完全明白这种机制了。然后自己可以写个小例子比如:监听Vector只要加入了新元素就发个消息的。 关于java实现接口回调和java接口回调的概念和作用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 java实现接口回调的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java接口回调的概念和作用、java实现接口回调的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java NIO Buffer过程详解
下一篇:Java测试框架Mockito的简明教程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~