java 事件处理程序_java的事件处理

本文通过比喻解释了Java中的事件处理机制,强调了接口在其中的作用。通过对比不同方式处理任务,展示了使用接口作为事件处理的灵活性和可扩展性。文章通过管家和阿姨的例子,说明了如何通过定义接口和实现接口的方法来实现事件触发时的相应操作,如按钮点击显示文字。通过这段代码示例,阐述了事件监听器的工作原理。
摘要由CSDN通过智能技术生成

java的事件处理。说白了就是一种别人先盖章。再随便你签合同的行为。

其实事件处理很简单。你只要把这背后的原理看清马上自己也能写了。

java里的事件处理一般依赖接口来实现。为什么要用接口呢。因为接口里面的函数是虚函数。是可以让别人去重写的。

这样做的好处是什么?我们就来仔细讲讲好处。

我们要看到设计者的想法。才能更好的去理解这套机制。

我们打个比方。假如有一套房子。有各式各样的佣人,我们写下这样的程序

如果是1点。叫保洁阿姨扫地

如果是2点。叫做饭阿姨做饭

如果是3点。叫洗衣阿姨洗衣

。。。。。。

看起来不错。会很有条理。

可如果换到另一家呢?他家根本没有这几个阿姨你怎么办?是不是你之前定好的规则就一下子就废了?你不能要求每个使用这套系统的人都去把这些阿姨雇来把。这显然是不现实的。

如果换一种不是那么周到的方式。

如果是1点。通知管家做1号盒子里的事情

如果是2点。通知管家做2号盒子里的事情

如果是3点。通知管家做3号盒子里的事情

。。。。。。

乍一看。好像这样的系统没有任何的意义。其实这就是事件处理的模型

这里面管家就是一个接口。123号盒子里的事情。那就是里面的函数。

或许还不明显。你会觉得看不懂。不知道这有何联系。我们再往下看。

这套系统要求使用者一定要有一个管家。才能工作下去。这相对之前的要求每个用户必须要有配套的各种阿姨来说是一种质的飞跃。而且还有一个极大的好处是什么。用户使用这套系统的时候。完全是随心所欲。你在一点钟想要做什么事情你只要把要做的事情写好放在1号盒子里面。如此一看。不知道你是不是对事件机制有了全局的把握呢。我们可以在将逻辑理一理。对应到专业术语上来。

我们可以拿按钮来举例。

当用户按下按钮的时候。你要显示一行文字。“你按下了的按钮”

要实现这个功能。相信你肯定是知道的。button.setonclickListener(new

{ public void onclick(){

print(“你按下了按钮”)}});

就是这样短短的代码。

然后我们来看它在源码中会怎么写。

private onclickListener onclicklistener;//声明一个接口

//定义一个接口

public interface onclickListener{

public void onclick();

}

public void setonclickListener(onclickListener listener){

this.onclicklistener = listener;

}

。。。。。。。。。。

if(onclicklistener != null)

onclicklistener.onclick()

。。。。。。看到这里。一切都是水落石出了。

这套机制中。先定义一个接口m。m中有一个方法n。然后还有一个setm的函数。这个函数也就是注册监听器的函数了。这个函数要传递一个接口对象。既然是接口。你在使用的时候就得实现里面的n方法。如此就导致了if判断中监听器不为空(因为你注册过了)导致接口中的n方法被调用了。现在你明白了。为何你在代码中写下seton。。Listener这样的函数的时候。在发生对应事件的时候。总能让你重写的n方法被执行了吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值