在下面的代码中,我对以下行有一些疑问:
btn.addActionListener(this);
th= new Thread(this);
代码 :
public class Foo extends Applet implements Runnable,ActionListener
{
Button btn;
Thread th;
public void init()
{
btn=new Button("Click on me");
add(btn);
btn.addActionListener(this); // pass reference as this
th=null;
}
public void run()
{
int i=0;
while(i++<10)
{
try{
th.sleep(500);
showStatus(new Integer(i).toString());
}
catch(Exception e){}
}
}
public void actionPerformed(ActionEvent e)
{
if(th==null)
{
th= new Thread(this); // pass reference as this
th.start();
}
}
}
在 Thread 类构造函数中Thread(Runnable target)
分配一个新的 Thread 对象。
我们可以传递 Runnable Target,但我已将其作为参数传递。我已经实现了 Runnable 接口,虽然它是可能的
但是我再次将它作为参数传递在这种情况下,我们可以传递ActionListener目标。
如果我们在这两种情况下都将它作为参数传递它如何得到解决。
我认为 这个参考是针对
1. Foo
2. Runnable
3. ActionListener的参考,
那么如何为方法或构造函数选择合适的参考?