現実世界はモノに満ちていて,人間はそれらのモノを分類する能力 がある.例えば,うちの1歳の娘はセントバーナードを見ても,シェ パードを見ても,ちゃんと『わんわん』と認識する.素晴らしいパ ターン認識能力! とはいえ,キツネを見ても『わんわん』と呼ん でいるような気がするが.
とにかく,オブジェクト指向では,この『わんわん』のような「分 類」をクラス,クラスに属するオブジェクト(『ポチ』とか)をイン スタンスという.
rubyをはじめとする多くのオブジェクト指向言語では,オブジェク トを作るのに,まずそのオブジェクトの振舞を決めるクラスを定義 して,それから,そのクラスのインスタンスを作るというやり方を とる.まずrubyでクラスを定義してみよう.
ruby> class Dog ruby| def bark ruby| print "わんわん\n" ruby| end ruby| end nil
classからendまでがクラスの定義だ.classの中でのdefはそのクラ スのメソッドを定義することになる.
とりあえず,Dogクラスができたので,オブジェクトを作ってみる.
ruby> pochi = Dog.new #<Dog:0xbcb90>
これで,Dogクラスの新しいインスタンスが作られて,変数pochiに 代入されたことになる.クラスのnewメソッドは新しいインスタン スを作るメソッドだ.pochiはDogクラスで定義された性質を持つの で,「吠える」ことができる
ruby> pochi.bark わんわん nil