Java利用接口实现回调

发表于:2013-6-08 09:56  作者:BruceZhang   来源:51Testing软件测试网采编

字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签:

  下面给出回调的模型和另一个实例以便我们更好的学习

/*
 * Java里面的接口回调,最简单的情况示意如下
 */ 
interface A {} 
 
class B implements A {} 
 
class C implements A {} 
 
class Test { 
    A b = new B(); 
    A c = new C(); 

/*
 * 考虑这样一个应用: NameChanger动态地改变Client的名字
 * 那NameChanger的changeName方法就要接收一个Client对象,然后获取(调用)Client的名字并作不同的处理
 * Client也要持有NameChanger,因为要打印改变后的名字
 */ 
class Client { 
 
    private INameChanger changer; 
    private String clientName; 
     
 
    public Client(INameChanger changer) { 
        this.changer = changer; 
    } 
 
    public void showMyNewName() { 
        String newName = changer.changeName(Client.this); 
        System.out.println(newName); 
    } 
     
    public String getName() { 
        return clientName; 
    } 
 
    public void setName(String clientName) { 
        this.clientName = clientName; 
    } 

 
 interface INameChanger { 
     
    public String changeName(Client client); 
     

 
 
public class ChangeNameTest { 
     
    public static void main(String[] args) { 
         
        Client client = new Client(new INameChanger(){ 
            public String changeName(Client client) { 
                return "Mr." + client.getName(); 
            } 
        }); 
        client.setName("Tom"); 
        client.showMyNewName(); 
         
        Client client2 = new Client(new INameChanger(){ 
            public String changeName(Client client) { 
                return "Miss." + client.getName(); 
            } 
        }); 
        client2.setName("Lucy"); 
        client2.showMyNewName(); 
         
    } 
     


33/3<123

评 论

论坛新帖

顶部 底部


建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2020, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道