ショートカット
ファシリテーター × あり方
コーディングの向こう側
Hello, ANOTHER world!
オブジェクト指向のはなし
プログラミングのはなし
C言語実力診断クイズ
eSkillBooks
オブジェクト指向のはなし

名前とは何か

導入

私たちは、名前をつけるという行為によって、概念を共有することができます。

解説

普段何気なく行っている「会話」という動作は、よく観察すると意外にまわりくどいプロセスです。そのプロセスは

送信者:

  1. 伝達したい情報を準備する
  2. その情報を言語に変換する
  3. その言語を音声に変換して送信する

受信者:

  1. 音声を受信する
  2. その音声を言語に変換する
  3. その言語を情報に変換する

というようなものです。このとき、会話をする者同士が共通の言語を知っている必要があります。聞いたことのない外国語で話しかけられても理解できないですよね。相手の知っている言語で話し、自分の知っている言語で聞く必要があります。

ある特定の「もの(=オブジェクト)」について会話するときには、そのものに対する共通の名前が必要になります。例えば「太郎君」という人物について会話しようと思ったら、「太郎君」という名前が表す人物のことを互いに知っている必要があります。「太郎君」という名詞とそれが表す人物を同一のものと認識することが互いにできてはじめて会話が成立します。

ということは、この世のすべてのものについて会話をするためには、この世のすべてのものに名前をつけなければなりません。しかし、「太郎君」のような固有名詞をすべてのものにつけ、なおかつ会話をする両者が同じものを同じ名前で呼べるように決めることはとうてい不可能です。そこで、固有名詞のほかに一般名詞が必要になります。

一般名詞をつけるということは、抽象化です。すべてのものに固有名詞をつけるかわりに、共通点のあるもののグループに対して名前をつけているのです。「魚」「鳥」「花」「石」「水」・・・、これらの一般名詞はすべて特定の「もの」ではなく、もののグループをあらわす抽象概念ですね。このような表現方法によって、私たちはこの世の森羅万象について語り合うことができるのです。

実際の会話の中では、一般名詞と固有名詞を無意識に使い分けているでしょう。しかし、オブジェクト指向言語ではこれらを厳密に使い分ける必要があります。それらは厳密に異なるものなのです。その違いが、つまり、クラスとインスタンスです。

(「オブジェクト指向のはなし」は1999年2月から2000年4月にかけて作成されたコンテンツです。)