千锋逆战班,接口习题
作者:互联网
在千锋学习的第18天
不积跬步无以至千里,不积小流无以成江河!加油
今天我学习了接口的回调,他是以后经常要是用到的。
这是我对接口的回调的理解
(1)首先我们要写一个接口,约束其内部方法
(2)我们要写一个接口的使用者(工具类),他在自己本身内部调用了接口内定义的方法,但是接口定义的方法是抽象,所以我们调用的其实是实现类的方法,但是实现类不知道是谁,所以我们要创建或者接受一个接口类型的对象(相当于实现类的对象),
(3)当我们调用接口的使用者(工具类)时,我们要先实现接口的实现类
总结:回调是一个双向的调用模式,当我们调用接口的使用者(工具类)的时候,接口的使用者(工具类)内部逻辑代码执行到接口方法处,调用了接口的实现类,而我们调用者不只是写调用而且要写接口的实现类,简单来说,程序员调用一个接口使用者,而接口使用者(可以是另外一个人同时在写)也在调用实现类(实现类是程序员写)。ps:接口的使用者可以和接口实现类同时编写。A调B,B在执行中又调用了A。
下面是案例梳理一下吧
package com.qf.day4.callback;
public class TestStudent {
public static void main(String[] args) {
Student[] stu = new Student[]{new Student("tom",18,85.0),
new Student("tom1",29,82.0),
new Student("tom2",16,83.0),
new Student("tom3",17,81.0),
new Student("tom4",21,99.0) };
java.util.Arrays.sort(stu);//调用接口的使用者
for(int i=0;i < stu.length;i++){
System.out.println(stu[i].name+ "\t" + stu[i].age);
}
}
}
class Student implements Comparable<Student>{//接口的实现类
String name;
int age;
double score;
public Student(){}
public Student(String name, int age, double score) {
super();
this.name = name;
this.age = age;
this.score = score;
}
@Override
public int compareTo(Student o) {//接口使用者那边是我们传入的是数组,数组的第i个调用了这个方法,并且传入第i+1,stu[i].compareTo(stu[i+1])
//定义要怎么排序的规则 正数 this向后
if(this.age > o.age){
return 1;
}
else if(this.age < o.age){
return -1;
}
else{
return 0;
}
}
}
这是java JDK的开发人员二十多年前写的半成品sort,我们需要实现Comparable这个接口,并且附上我们按照什么规则做排序。sort中有对接口的调用
以上的代码是实现类,以及书写排序规则,
大家有什么不懂得欢迎评论留言
weixin_44077166 发布了9 篇原创文章 · 获赞 0 · 访问量 445 私信 关注标签:千锋,调用,age,接口,逆战班,stu,Student,使用者,习题 来源: https://blog.csdn.net/weixin_44077166/article/details/104542852