类方法
类方法:方法的接受者就是类本身的方法称为类方法。
直白一点来说,类方法不需要实例化得到对象去调用,可以直接通过类名.方法名去调用一个方法。
类方法有三种定义形式
第一种:class << 类名 ~ end
class << Hello
def hello(name)
p "#{name},hello"
end
end
第二种:class << self ~ end
class Hello
class << self
def hello(name)
p "#{name},hello"
end
end
end
第三种:def 类名.方法名 ~ end
def Hello.hello(name)
p "#{name},hello"
end
第四种:类似于第二种
class Hello
def self.hello(name)
p "#{name},hello"
end
end
以上都可以通过
Hello.hello("Nick")
单例类
通过class << 类名 ~ end定义的类也被成为单例类
单例类,类中的方法属于特定的实例。
str1 = "ruby"
str2 = "Ruby"
class << str1
def hello
"Hello,#{self}"
end
end
p.str1.hello #hello,ruby
p str2.hello #error