• ベストアンサー

thisキーワードについて確認

確認1:thisは、「オブジェクト(インスタンス)自身の参照」ですか? 質問:何故クラスメソッド内でthisが使えないのですか?

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

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

thisは自身の参照です。 クラスメソッドでthisが使えない理由は、参照すべき「自身」が存在しないため。 というか「自身」となるインスタンスが存在しなくても使えるのがクラスメソッド。

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

質問の方だけ: ぎりぎり言えば「クラスメソッドの中で this として指定できるもの」は 1つ思いつくんだけど.... ただ, それが使えたとして「何がうれしいか」といわれると, メリットがまったく想像できない.

  • root139
  • ベストアンサー率60% (488/809)
回答No.2

確認1はその通りです。 インスタンスメソッドではそれが呼び出されたオブジェクト、コンストラクタではそれが生成したオブジェクトへの参照値になります。 クラスメソッドは特定のインスタンスに結びついていない為、thisは使えません。 クラスメソッドが呼ばれた時に、そのクラスのインスタンスは1つも生成されていないかも知れませんし、100万個存在しているかも知れません。この様な場合にはクラスメソッド内に this が有っても、何を指しているのか分かりませんよね?

関連するQ&A