アマグラミング

プログラミング初心者が勉強したことを復習とメモがてら書いているだけです。

(90)特異クラス、特異メソッド

class << クラス名 ~ ...end

この書き方のクラス定義を特異クラス定義という。

これで定義したメソッドを特異メソッドという。

 

特異メソッドは任意のオブジェクトだけに利用できる。

 

ちょっと書いてみる。

 

yosuke = "よう"

yukiko = "おはよう"

 

class << yukiko

def aisatsu

"鳴神くん、#{self}"

end

end

 

p yosuke.aisatsu

p yukiko.aisatsu

 

これを実行すると

まずyousukeはエラーが起こる、そんなメソッド対応してないから。

p yosukeの行を削除する

 

で再度実行

f:id:tiroru17:20170715033805p:plain

yukikoのほうは特異メソッドを使ってできている。