上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Rubyのクラスメソッド(静的メソッド)

Rubyのクラスメソッドについて、イマイチよく分からなかったのですが、こちらのページの解説がかなり分かりやすかったです。
My BASE:Ruby/クラス

クラスメソッドとは「静的メソッド」とも呼ばれていて、定義する際にはそのクラス名か「self」をクラスメソッドのレシーバとして付ける必要があるようです。

class A
 def A.a
  puts "a"
 end

 def self.b
  puts "b"
 end
end
A.a #=> a
A.b #=> b
c = A.new
c.a #=> エラー(NoMethodError)
c.b #=> エラー(NoMethodError)


そのクラスから生成したインスタンスからは呼び出せないようですが、インスタンスを生成することなく呼ぶことができるので、関数的な使い方ができるのが特徴ですね、
クラスメソッドはそのクラスの外からでも定義可能なようです。

class A
end

def A.a
 puts "a"
end
A.a #=> a


そのクラスから生成したインスタンスからクラスメソッドを呼び出す方法はあるのかな?
関連記事

コメントの投稿

非公開コメント

プロフィール

星羽(榎田)

Author:星羽(榎田)
PHPエンジニアがRuby、PHPなどをいじった時の備忘録

最新記事
最新コメント
最新トラックバック
カテゴリ
スポンサードリンク
検索フォーム
RSSリンクの表示
リンク
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。