首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java 实现接口的疑惑!求高手解释···该如何处理

2012-09-21 
java 实现接口的疑惑!求高手解释[codeJava][/code]package com.frameactiontestimport java.awt.*impor

java 实现接口的疑惑!求高手解释···
[code=Java][/code]
package com.frameactiontest;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class FrameActionTest implements ActionListener {
/**
 * @param args
 */
Frame f = new Frame();
public static void main(String[] args) {
// TODO Auto-generated method stub
FrameActionTest fat = new FrameActionTest();
fat.init(); //调用init()方法.
}
public void init(){
Button bn =new Button("Confirm"); //new Button按钮对对象.
f.add(bn);
f.setSize(800, 600);
f.setVisible(true);
bn.addActionListener(this); //曾加监听器.
}
public void actionPerformed(ActionEvent e) { //重写 ActionListener的方法.
// TODO Auto-generated method stub
f.setVisible(false);
f.dispose();
}
}
我想问的是:
类“FrameActionTest” implements(实现了) 类“ActionListener” ,这里从main函数的执行代码顺序看,
重写 类“ActionListener”的“actionPerformed(ActionEvent e)”方法,
然后我疑问的是java怎么知道 先执行main函数的“init()”方法之后才执行重写的“actionPerformed(ActionEvent e)”方法,(因为我认为“actionPerformed(ActionEvent e)”方法是在main 函数中“new FrameActionTest()”的时候就执行了)

[解决办法]

探讨
怎么没人回答?是不是问题太简单了···

[解决办法]
探讨
引用:
怎么没人回答?是不是问题太简单了···


其实也没啥,主要就是这句话的认识是错误的而已:
“因为我认为“actionPerformed(ActionEvent e)”方法是在main 函数中“new FrameActionTest()”的时候就执行了”
实际上,actionPerformed() 函数是在有事件发生时,才会被调用的。

init() 则……

[解决办法]
一楼正解,actionPerformed() 函数是在事件发生时被调用,而

init() 是初始化方法,刚创建好FrameActionTest对象时,就会被调用,所以才会是那个执行顺序,可以测试一下,打印店东西出来看看就知道顺序了

热点排行