- コピー - - 目次

クラス


現実世界はモノに満ちていて,人間はそれらのモノを分類する能力 がある.例えば,うちの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

- コピー - - 目次