以下のコードでは、次の行に疑問があります。
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();
}
}
}
in Thread クラス コンストラクターThread(Runnable target)
新しい Thread オブジェクトを割り当てます。
Runnable Target を渡すことができますが、これをパラメーターとして渡しました。可能ですが、Runnable インターフェイスを実装しましたが、これをパラメーターとして
渡しました。この場合、 ActionListenerターゲットを渡すことができます。どちらの場合もこれをパラメーターとして
渡すと、どのように解決できるか。この参照は 1.Foo 2.Runnable 3.ActionListener の参照を対象としていると
思い
ます
が
、
メソッドやコンストラクタに対してどのように適切な参照が選択されるのでしょうか?