- ベストアンサー
メソッドの引数の意味について
こんにちは。 JAVAの初心者です、宜しくお願いします。 drawImage(img,x,y,imageobserverオブジェクト)の引数で最後の「imageobserverオブジェクト」とはどのような意味でしょう。 普通はthisを入れる、と本には書かれていますが、this以外が入る場合とはどのような場合でしょう。 また、addMousemotionListener(this)のthisの引数の意味はどのような意味でしょう?? 「このオブジェクト」に来たイベントをListenerとしてとるという意味でしょうか。 以上宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> 「imageobserverオブジェクト」とはどのような意味でしょう。 ImageObserverインタフェースを実装したクラスのオブジェクトです。 APIリファレンス http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/image/ImageObserver.html を参照して頂くと分かると思いますが、AWTやSwingのクラスはImageObserverインタフェースを実装したクラスになっています。 つまり、たとえば下記のようなSwingのクラスを継承したクラスMyButton ---------- public class MyButton extends JButton { ... } ---------- の中でdrawImage()メソッドを使用する場合、このMyButtonクラスもImageObserverインタフェースを実装していることになるので、drawImage(img,x,y,this)のように書くことができます。 ※) ImageObserverインタフェースを別のクラスで実装していれば最後の引数にthis以外が入ることもありますが、この方法はほとんど見かけません。 > addMousemotionListener(this)のthisの引数の意味はどのような意味でしょう?? addMouseMotionListener()メソッドの引数には、MouseMotionListenerインタフェース http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/event/MouseMotionListener.html を実装したクラスのオブジェクトが入ります。 addMouseMotionListener()メソッドを記述しているご自分のソースコードをご覧下さい。 ---------- public class ..... implements MouseMotionListener { ..... } ---------- または、 ---------- public class ..... extends MouseMotionAdapter { ..... } ---------- になっていませんか? これでこのクラス自体がMouseMotionListenerインタフェースを実装したクラスになるので、addMouseMotionListener(this)のように自分自身のオブジェクトを渡すように記述できます。 ちなみに、上記のようなクラスはMouseMotionListenerインタフェースを実装するために、 ---------- public void mouseDragged(MouseEvent e) { ..... } public void mouseMoved(MouseEvent e) { ..... } ---------- の2つのメソッドが実装されていると思います。