
正文
java接口回调代码 java 接口回调
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
有关接口回调的java题,求解。
下面是UnitPrice接口代码java接口回调代码:
public interface UnitPrice {
public double unitprice();
}
下面是电视机类代码java接口回调代码:
public class Television implements UnitPrice {
@Override
public double unitprice() {
return 3500d;
}
}
下面是计算机类代码java接口回调代码:
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接口回调代码,是否能够满足要求。
相关问答
Q1: 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
Q2: Java中什么是接口回调?
可以把使用某一接口java接口回调代码的类创建的对象的引用赋给该接口声明的接口变量java接口回调代码,那么该接口变量就可以调用被类实现的接口的方法。
实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。
Java语言特点
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。
例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。
Q3: java上转型对象和接口回调的区别 感觉这两段代码没啥区别呀,帮忙解释下谢谢
interface A1这是接口 class a extends A1这是抽象类。
具体区别:网页链接
抽象类(abstract class)
定义:包含抽象方法的的类是abstract class
用abstract关键字修饰
作用:abstractclass是为了把相同的东西提取出来,即重用
使用abstractclass语法规定
语法
备注
抽象类定义用abstract关键字修饰 要通过子类进行实例化
抽象类是不能被实例化的 要通过子类进行实例化
子类必须重写父类的所有抽象方法 抽象方法:声明但却未被实现的方法,用abstract关键字修饰
含有抽象方法的类一定是抽象类,但是抽象类不一定含有抽象方法 无
抽象类是用来被它的子类继承的 关键字extends
抽象类是在功能上的一个规定 无
Interface
定义:比abstract class更加抽象,是一种特殊的abstract class
用Interface关键字修饰
作用:Interface是为了把程序模块进行固化的契约,是为了降低偶合
使用Interface的语法规定
语法
备注
接口定义用Interface关键字修饰
接口中的所有方法都是抽象的 可以用abstract修饰,也可以省略
接口中的方法必须是用public修饰,或不写 但是不能被其他修饰符修饰
接口中的属性必须是全局常量 publicstaticfinal修饰
抽象类是用来被它的子类实现的 关键字Implements
抽象类是在结构上的一个规定 无
接口不能被实例化 无
子类实现接口时需要实现接口中的所有方法 若有一个未不实现,该子类就是抽象类abstractclass
Q4: java用jna调用C语言dll接口中的回调函数怎么写
简单的你会写,那就好办,直接上代码
public interface TestAPI extends StdCallLibrary {
interface LoginReply extends StdCallCallback {
/**
* 登录回调
*/
void invoke(String userId, long retCode, String retMsg);
}
/**
* 注册一个登录回调方法.此方法是dll提供的
*/
void RegisterLoginReply(LoginReply loginReply);
}
/**
* 实现登录回调方法
*/
private class LoginReplyCallBack implements TestAPI.LoginReply {
@Override
public void invoke(String userId, long retCode, String retMsg) {
log.info("登录回调方法:{},{},{}", userId, retCode, retMsg);
}
}
// 设置登录回调
api.RegisterLoginReply(loginReplyCallBack);
java接口回调代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 接口回调、java接口回调代码的信息别忘了在本站进行查找喔。







