类方法

到目前为止我们使用的方法都是’实例方法’(instance methods)。实例方法属于类(class)的特定实例(instance) - 换句话说,属于单个对象(object)。也可以编写“类方法”(class methods)。类方法属于类(class)本身。为了定义类方法,你可以在方法名称前面加上类名和句号:

class_methods1.rb
  1. class MyClass
  2. def MyClass.classMethod
  3. puts( "This is a class method" )
  4. end
  5. def instanceMethod
  6. puts( "This is an instance method" )
  7. end
  8. end

调用类方法时必须使用类名:

  1. MyClass.classMethod

特定对象不能调用类方法,同样的类也不能调用实例方法:

  1. MyClass.instanceMethod #=> Error! This is an „undefined method‟
  2. ob.classMethod #=> Error! This is an „undefined method‟