当前位置: 技术问答>java相关
关于接口...
来源: 互联网 发布时间:2015-03-22
本文导语: 问题一 关于接口 class A,class B 是两个不同的类,但都实现了接口 C 那么A和B 是什么关系? 他们可以通讯么? 问题二 接口和事件 一个Applet为了实现鼠标操作需要实现接口MouseListener 然后在mouseClicked(MouseEvent e)...
问题一
关于接口
class A,class B 是两个不同的类,但都实现了接口 C
那么A和B 是什么关系? 他们可以通讯么?
问题二
接口和事件
一个Applet为了实现鼠标操作需要实现接口MouseListener
然后在mouseClicked(MouseEvent e)等方法中编写代码
请问java的运行环境是怎么知道用户移动了鼠标、单击了
鼠标,然后执行相应方法中的代码的呢?
如果我不实现接口,而是自己在程序中书写mouseClicked方法,
java的运行环境找不到的到?会不会执行??
关于接口
class A,class B 是两个不同的类,但都实现了接口 C
那么A和B 是什么关系? 他们可以通讯么?
问题二
接口和事件
一个Applet为了实现鼠标操作需要实现接口MouseListener
然后在mouseClicked(MouseEvent e)等方法中编写代码
请问java的运行环境是怎么知道用户移动了鼠标、单击了
鼠标,然后执行相应方法中的代码的呢?
如果我不实现接口,而是自己在程序中书写mouseClicked方法,
java的运行环境找不到的到?会不会执行??
|
- java.applet.Applet 是 java.awt.Component的子类
- public void addMouseListener(java.awt.event.MouseListener l) 是
java.awt.Component的一个方法
- java.awt.event.MouseListener中
有一个mouseClicked(java.awt.event.MouseEvent e)方法
所以你可以把任何实现了java.awt.event.MouseListener接口
的类的实例, 通过addMouseListener来告诉你的Applet, 当
JVM发现Applet区域被click之后,上述实例中的mouseClicked
方法会被调用(这大概相当于C中的callback,design pattern中
的Command Pattern),同时java.awt.event.MouseEvent的一个
实例被传入
关于JVM是如何发现Applet区域被click,小衲不知道,嘻嘻。。。
估计是如楼上大侠所说,部分过程隐藏在JVM之内(不属于开放出来的API范畴),
可以看看在这里边:
java.awt.Component
java.awt.AWTEventMulticaster
- public void addMouseListener(java.awt.event.MouseListener l) 是
java.awt.Component的一个方法
- java.awt.event.MouseListener中
有一个mouseClicked(java.awt.event.MouseEvent e)方法
所以你可以把任何实现了java.awt.event.MouseListener接口
的类的实例, 通过addMouseListener来告诉你的Applet, 当
JVM发现Applet区域被click之后,上述实例中的mouseClicked
方法会被调用(这大概相当于C中的callback,design pattern中
的Command Pattern),同时java.awt.event.MouseEvent的一个
实例被传入
关于JVM是如何发现Applet区域被click,小衲不知道,嘻嘻。。。
估计是如楼上大侠所说,部分过程隐藏在JVM之内(不属于开放出来的API范畴),
可以看看在这里边:
java.awt.Component
java.awt.AWTEventMulticaster
|
1、A 和B 没有关系,如果要通讯,得把自己的对象传给对方。
2、这是JAVA虚拟机自己本身的机理,外人不得而知,至少我是不知道。
2、这是JAVA虚拟机自己本身的机理,外人不得而知,至少我是不知道。
|
关于鼠标的问题:
实现的接口相当于vc中的回调函数,也就是用系统调用的,系统什么时候调用,根据不同的函数功能而定。
java的时间映射应用了oop的重载功能,本质上,有鼠标事件产生,系统调用MouseListener中的响应方法,你重载了或实现了这些方法,根据oop的虚函数特性,调用的是你写的事件方法,也就完成了事件映射。
如有错误,大家指出。
实现的接口相当于vc中的回调函数,也就是用系统调用的,系统什么时候调用,根据不同的函数功能而定。
java的时间映射应用了oop的重载功能,本质上,有鼠标事件产生,系统调用MouseListener中的响应方法,你重载了或实现了这些方法,根据oop的虚函数特性,调用的是你写的事件方法,也就完成了事件映射。
如有错误,大家指出。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。