我知道self
是方法调用的接收者。但我不知道self
方法定义中是否没有。
代码示例:
class One
def kk
"kk"
end
def self.kkk
"kkk"
end
end
puts One.new.kk
puts One.kkk
为什么我需要对used like使用new
方法?One
One.new.kk
self.kkk
这里定义了一个类方法One
。如您所知,self
是接收器。在这里的上下文中,它是One
类。
并One.new
返回一个类的实例One
。kk
是仅由实例调用的实例方法。
class Demo2
def self.method1(a)
p a.is_a? Demo2
end
def method2(b)
p b.to_s
end
end
a=Demo2.new
# here, if you type a.... wait for hint, you just can only get method2()
# just because it class self.
a.method2('123')
Demo2.method1(a)
p Demo2 # this is a class
p a # this a class instance
>'123'
>true
>Demo2
>#<Demo2:0x290d768>
我觉得这个简单的代码可以让你清楚,我不和你讲OOP,那太无聊了!^_^