在下面的代码中,用不同的方式声明两个方法有什么区别。第二个方法使用了
Week
,而第一个方法没有使用 Week
。我们也无法通过类对象 d1
访问第二个方法。它会报错。undefined method `weeks_in_year' for #<Decade:0x2c08a28> (NoMethodError)
那么,在第二种方法中使用Week
前缀声明方法有什么用呢,当它没有用时。
module Week
def weeks_in_month
puts "You have four weeks in a month"
end
def Week.weeks_in_year
puts "You have 52 weeks in a year"
end
end
class Decade
include Week
end
d1=Decade.new
d1.weeks_in_month
d1.weeks_in_year