アナログとデジタルとゲームと何か

日常、プログラミングなどなど

オブジェクト指向: たとえ話

仕事の上司が若手にオブジェクト指向を住民票に例えて説明しているのを横耳に聞きました。

私の場合は、よくRPGゲームに例えて話をします。ポケモンとかドラクエとかFFとか。大抵、この手の職場に来る人はどれかを遊んだことはあるはず... (遊んだことがなければ、次の手を考えます。)

ポケモンピカチュウがいるとするやん。」 「HPとか攻撃力とかがフィールドとかプロパティに相当するよね」 「それで、電気ショックとか逃げるがメソッドで。」 要は何が言いたいかというと、キャラクターがもつパラメータとかステータスがプロパティに相当して、行動やアクション的なものがメソッドに当たるという感じです。あくまでイメージですが、プロパティは自分の状態を覚えておく変数であり、メソッドが何かしら処理をして自分やほかのオブジェクトに影響を与えるものであるというのが伝わりやすいのではないでしょうか。

それでピカチュウ以外にもゼニガメとかリザードンがいますよね。そうするとピカチュウで作ったものは同じようにほかのポケモンに流用できそうです。そもそもピカチュウをもっと一般的なポケモンとして設計するほうが賢そうと。つまりこれが Public class Pokemon

   string name

   int HP

   void Escape()

....

で定義されるクラスということになります。

ポケモンには努力値という隠しパラメータがありました。(今は表示されているのかも...)そういう隠しておきたいものはプライベート(Private) として隠しておくというイメージです。

などなどと説明をして、最後に

「今、言ったことは例え話だから実際、ゲームはそんな風につくられてないから注意してね。」と逃げておきます^^;