インスタンス変数

オブジェクト指向なるプログラムの組み立て方に興味を引かれたのはいつのことだったのだろう。このサイトで「オブジェクト指向」をキーワードに検索してみると1件ヒットした。2003年のことだ。読み返してみるとほかのメモと同様なにをいっているのかよく分からないのだが、少なくともそのときにはオブジェクト指向に関心があったのは間違いない。
1件しかヒットしなかったのは、それから関心が逸れたのかというとそうではない。それどころか、理解を深めようといろいろ本を読んでもできなかったからメモを残せなかったのだ。
といってもなにかプログラムを組むもうと入れ込んでいたわけでもなく、だらだらと字面を眺めていただけのだが、でもつい最近理解のきっかけがつかめた。それはオブジェクト指向言語で使われるインスタンス変数だ。


いままでインスタンスといわれるとインスタントラーメンのインスタントをイメージしていた。実はそれが間違いの大元だったのだ。インスタンスはオブジェクト指向関連の本では「実体」などと表現されることが多い。ネットで調べると語源的には「即興」を意味するインスタントと同じ、とある。どう同じか詳しく述べられているサイトは見つけられなかったが、おそらく for instance が 「たとえば」の意味になるのは、「ぱっと思いつくところでは」的な意味を含んでいるからではないだろうか。
実際オブジェクト指向でクラスという鋳型からさっと作られるのがインスタンスであり、インスタントの意味も含んでいることは間違いないだろう
というわけで、いままでインスタンス変数が出てくると、意味的に頭のなかで勝手に置き換わっていたインスタント変数だが、あるときふとインスタンス変数とはまったく異なることに気づいたのだ。ラーメンで例えるならインスタントラーメンを食べていたつもりが、ふと気づくとインスタンスという店にいてそこで出されるラーメンをすすっていることに気がついたようなものだ。当然その味わいは大いに異なり、オブジェクト指向の理解が多いに深まっている。
今日のメモはすでにインスタンス変数を理解している人にとってはなにが問題だったのかよく分からないだろうし、そんな変数なんか興味のない人にとってはどうでもいいメモなのだろうが、当の本人にとっては誠にマルちゃんラーメンなのであった。

コメントを残す

メールアドレスが公開されることはありません。