next up previous contents
Next: クラスとメタクラス Up: Smalltalk Previous: Smalltalkとは

オブジェクト指向

   Smalltalkはオブジェクト指向(object-oriented)という考え方をもとにしている言語である。これはあることを表すのに、もの(object)とそれに対する作用(action)で表すという、人間の考え方や言語に近い表現法を用いている。人間は通常、知識を分類し、その問題をより扱いやすい部分問題に分解する。例えば、ここにコリーとドイツ・シェパードの2匹の犬がいたとする。この2種にはいろいろと異なった性質もあるが、共有する性質もたくさんあるはずである。 たとえばこの2匹に餌をやるとき、種類の違いは気にしないだろう。 すべての犬が肉食であることは知っているので、肉を与えればいいわけである。

Smalltalkでも、同じようにすべての情報を 関係する性質ごとにまとめて階層体系を作り上げる。 たとえば‘ラッシー’という名前の犬について考えてみる。Smalltalk流の表現を使うとラッシーは‘コリー’というクラス(class,分類)のインスタンス(instance,実体、例)であり、コリーは‘犬’のサブクラス(subclass,下位分類)、さらにこれも‘肉食動物’のサブクラスである、というような具合である。犬であるという事から決まってくる行動形態をラッシーは持っている。たとえば‘取って来い’や‘おまわり’などの命令にたいしてとる行動がそうである。ラッシーの飼い主である‘ティミーを捜してきて’、などというような命令はラッシーにしか通じないものだが、その他の、上であげたような命令は大抵の犬に共通なものである。 このような仕組みを持つことで,Smalltalkは非常に強力な言語となっている。[3]


Deguchi Lab.