我正在查看一些开源代码,无法围绕这个代码片段。
class Something
def self.smart
new.smart
end
def smart
"test"
end
end
class Other < Something
println Other.smart
每次调用smart
时,代码是否尝试实例化新实例?
答案 0 :(得分:2)
def self.smart
new.smart
end
等同于static
方法,可以使用类名访问。
... static ... smart()
和
def smart
"test"
end
等同于instance
方法,需要访问对象
... smart()
new与java中的相同,创建了一个类的实例。
整个事情相当于。
public static .... smart(){
new ClassName().smart();
}