public class Test {
public static void main(String[] args) {
// 回调接口
// 小王,小张
// 小王向小张求教问题
// 同步 小王问小张 1+1 = ?
//实例化小张
XiaoZhan mXiaoZhan = new XiaoZhan();
//调用add方法 有返回值可以直接打印出来
System.out.println(mXiaoZhan.add(1, 1));
//小王问小张 沟谷定理 小张想了一下 然后再回答他
//凋用aougu()线程睡眠方法 有返回值可以直接打印
System.out.println("沟谷定理是"+mXiaoZhan.aougu());
// 查询资料之前,我需要将电话号码告诉小张
//小王又问地球为什么是圆的 小张一下子回答不出来 下面开起了另一个线程
//小王做自己要做的事,小张去找资料回答小王
//开起线程
mXiaoZhan.start();
System.out.println("自己做自己的事");
}
}
public class XiaoZhan extends Thread {
//方法一,回答小王1+1的问题
public int add (int x,int y){
return x + y ;
}
//方法二,回答小王沟谷定义,,一下子回答不出,
public String aougu() {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "a的平方+b的平方 = c的平方";
}
//方法三,调用Thread类中的run()方法实现 一个人查资料 另一个人可以做其它的事
//使用了线程之间的 线程通信
//实现接口
@Override
public void run() {
super.run();
System.out.println("开始查资料");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("终于查到了");
//调用接口的实现方法
phone.call("这个问题太深奥,搜了两天,没搜到");
}
//建一个 线程通信接口CallPhone 接口定义一个 call 方法
public static interface CallPhone{
//有参方法
public void call(String str);
}
//实现上面定义的接口 CallPhone phone =new CallPhone(); 实例化加分号这里同样也要加
CallPhone phone =new CallPhone() {
//实现接口方法
@Override
public void call(String str) {
//接口具体做法
System.err.println(str);
}
};
}