• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Objective-Cでのselfについて。)

Objective-Cでのselfとは何者なのか?

このQ&Aのポイント
  • Objective-Cのselfは、自分自身を表す変数です。
  • selfは、インスタンスメソッド内で使用される隠し引数です。
  • selfは、オブジェクト自体を指し示し、そのオブジェクトのプロパティやメソッドにアクセスするために使われます。

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

  • ベストアンサー
回答No.2

オブジェクト指向という考え方は、プログラミングの中に現るものを「物」として扱い、それに対して、「メッセージ」を送ることで、処理を行おうという考え方です。 なので、基本は、「だれが」「だれに」「どのようなメッセージ(と、ついでに、パラメータ)」を送るか。 そして、メッセージの受け手は、「受けたメッセージに対してどういう反応を示すか」ということ。 たとえば、ドラマや芝居で、「この人物は、どのような言葉をかけられるとどう行動するか」ということを全部決めて、あとは、「スタート」と声をかけると、ドラマが勝手に進行する(処理が続行される)という考え方の上に成り立っているものです。 普通にドラマを作ろうとすると、始めから終わりまでシナリオを作らなければなりません。 それに対して、ある登場人物に対して、「誰それからこう言われたら、こういう反応をする」ということだけを決めるなら、一度に考えなければならないことが、少なくてすみます。だから、大きなシステムも比較的シンプルに構成できるだろうという発想です。 さて、「だれに」という要素が存在するのですが、メッセージというのは、自分以外の人に送ればそれですべてOKというものではありません。 「自分にメッセージを送ってください」と設定するとか(郵便.宛先 = 自分) 「自分のことを表明する」とか、(自分.名前 = 太郎) まあ、そういう文脈で、「自分」ということがあちこち出てくるわけです。 そういう、「物(人も)」と「メッセージ」で成り立つ世界において、「彼」や「彼女」や「あなた」と同じように、「自分自身」を表すものです。 で、自分自身の行動には、いちいち「自分はどうする」といわないように、「自分」というのがなくても、動作は記述できるのですが、本来、他人に当てたメッセージや他人のことも設定できるような部分に、「(他の人じゃなくて)自分」というのを明示するのに、 self が使われたりするわけです。

silvercpanda
質問者

お礼

ボンヤリとではありますが、なんとなく解ったような気がします。ありがとうございました。これからも精進していきます。

その他の回答 (2)

noname#190876
noname#190876
回答No.3

ギャラのでない、ここで、ながながした説明する気にはなりませんが、まじめに、Objective-Cのテキスト読んだことあるんでしょうか。よくあるのは、ネットにころがってある、いいかげんな説明をよんでわからん、とか言っていることですが。  Appleのドキュメントは、基本、英語ですが、Objective-Cについての説明は、日本語でありますけど、これ、読みました?

回答No.1

>target:selfとか、hoge.delegate=selfだとか、self.title=@"hoge"のようにselfが前に付いたり、後ろに付いたり 前に付いたり後ろに付いたりの意味が判らないなら、ぶっちゃけ「基礎から勉強して来い」なんだけど。 >selfが何をしているのかが全く分かりません。 「何もしてない」が正解。 http://ja.wikipedia.org/wiki/This_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0) に解説されてる「this」と同じだから、上記ページをよく読むこと。 上記ページを読んでも理解できないなら、objective-Cなどの「オブジェクト指向言語」は理解できないから、他の言語を習得するか、プログラミングは諦めた方が身の為。

関連するQ&A