概要
クラスメソッドは、インスタンスではなくクラスレベルで定義されるメソッド。
定義と利用の方法
インスタンスメソッドは、メソッド名の前に'self.'
を付して定義する。
1 2 3 4 5 |
class MyClass def self.class_method() puts "called" end nd |
インスタンスメソッドは、[クラス名].[メソッド名]
で呼び出す。
1 2 3 |
MyClass.class_method # called |
インスタンスからは実行不可
インスタンスメソッドから呼び出したり、インスタンスから直接呼び出すことはできない。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
class MyClass def self.class_method() puts "called" end def method() print "in instance method - " class_method() end end instance.method # in instance method - # in `method': undefined method `class_method' for #<MyClass:0x0000000005175908> (NoMethodError) instance.class_method # in `<main>': undefined method `class_method' for #<MyClass:0x0000000005135358> (NoMethodError) |