//接口回调理解:先创建好接口,需要使用的时候用匿名内部类实现接口,就叫接口回调,以下是我设计的程序。


package callback;


import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;


//接口

package callback;


public interface CallPhone {

public void playPhone();


}


//PhoneNum类

package callback;


public class PhoneNum {

private String name;

private Integer num;

public PhoneNum() {

}

public PhoneNum(String name, Integer num) {

this.name = name;

this.num = num;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getNum() {

return num;

}

public void setNum(Integer num) {

this.num = num;

}


}


public class Test {

        private static List<PhoneNum> list = new ArrayList<>();


        public static void dicall(CallPhone callPhone) { //调用接口对象作为参数传递

callPhone.playPhone();     //接口对象调用方法


}

public static void main(String[] args) {


list.add(new PhoneNum("张三", 1357467065));

list.add(new PhoneNum("李四", 1343457568));

list.add(new PhoneNum("黄五", 1374563456));

list.add(new PhoneNum("赵六", 1363457456));

list.add(new PhoneNum("刘七", 1594545456));

Test.dicall(new CallPhone() {  //匿名内部类,实现接口

@Override

public void playPhone() {

Scanner sc = new Scanner(System.in);

System.out.println("请输入你要拨打的电话号码");

int num = sc.nextInt();

boolean flag = false;

String name = "";

for (int i = 0; i < list.size(); i++) {

if (flag = list.get(i).getNum() == num) {

name = list.get(i).getName();

break;

}

}

if (flag) {

System.out.println("你正在打给" + name);

} else {

System.out.println("你拨打的号码没有保存在号码簿中,拨打完好请保存");

}

System.out.println("电话拨打完毕,退出拨号程序");


}

});

}



}