• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メソッドの引数としてのthisの意味)

メソッドの引数としてのthisの意味とは?

このQ&Aのポイント
  • java初心者です。メソッドの引数としてのthisの意味を教えてください。
  • thisはインスタンス変数を表すときに使用される他、同じクラスの別のコンストラクタを呼ぶ際にも使われます。
  • 具体的な例として、addMouseListener(this);や、g.drawImage(img,10,10,this);が挙げられます。後者はオブジェクトのインスタンスメソッドなので、thisはそのオブジェクトへの参照を表します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kei5989
  • ベストアンサー率40% (11/27)
回答No.1

# うまく言葉で表現できる自信はありませんが。。 thisはそのクラスの、現在処理を実行しているオブジェクト(インスタンス)です。 例えば、Aというクラスでg.drawImage( img, 10, 10, this );を実行したとき、 thisはAのインスタンスです。 gではなく自分自身への参照を、gへ渡しているのです。 drawImageの第4引数の型は、 呼び出しているクラス(もしくはその継承元)の型ではないですか? こんな説明でわかりますか?(^-^;

koun
質問者

補足

回答ありがとうございます。 thisというのは、そのメソッドの呼び出し元のクラスのオブジェクトへの参照である、ということでしょうか? drawImage()はAppletクラスを拡張したクラスで呼び出しています。つまり、アプレットを実行する側でそのクラスのオブジェクトがつくられて、そのオブジェクトへの参照がthisになるのでしょうか?

その他の回答 (3)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.4

> メソッドを定義するときに使われるthisは、定義されるクラスのオブジェクトを表し、メソッドを呼び出すときに使われるthisは、呼び出し元のクラスのオブジェクトへの参照を表すのですね。 そういう憶え方をしようとするからややこしいんです。 「あるクラスの記述中に出てくるthisは、そのクラスのインスタンス自身を示す」とだけ憶えておけばOK。

koun
質問者

お礼

その憶え方の方がいいですね。

  • kei5989
  • ベストアンサー率40% (11/27)
回答No.3

#1です。 # 日本語がややこしくなってきましたので、勘違いがあったらすみません(汗) > thisというのは、そのメソッドの呼び出し元のクラスのオブジェクトへの参照である、ということでしょうか? その通りです。 (「そのメソッド」=今の例でいうとg.drawImageですよね?) > アプレットを実行する側でそのクラスのオブジェクトがつくられて、そのオブジェクトへの参照がthisになるのでしょうか? こちらも、その通りです。 アプレットを実行するモジュールをX、アプレット(を拡張した)クラスをAとすると、 XでAのオブジェクトaが生成され、aを実行する際はA内のthisはaを指すことになります。

koun
質問者

お礼

ありがとうございます。理解できたと思います。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

thisは「自分自身のインスタンス」を示します。 #1でも言われていますが、クラスAのインスタンスaのメソッド内で使われるthisは、全てaを指します。 「自分自身」のインスタンス名は不明(というか不定)であるため、「自分で自分を参照する」場合の識別子としてthisがある訳です。

koun
質問者

お礼

回答ありがとうございます。メソッドを定義するときに使われるthisは、定義されるクラスのオブジェクトを表し、メソッドを呼び出すときに使われるthisは、呼び出し元のクラスのオブジェクトへの参照を表すのですね。 紛らわしいですが、両方ともメソッドが書かれているクラスのオブジェクトを表しているんですね。

関連するQ&A