从Java的角度来看,Ruby中的“自我”和“新”是什么意思?

时间:2012-01-05 03:39:41

标签: java ruby oop

我正在查看一些开源代码,无法围绕这个代码片段。

class Something
    def self.smart
       new.smart
    end

    def smart 
      "test"
    end
end

class Other < Something

println Other.smart

每次调用smart时,代码是否尝试实例化新实例?

1 个答案:

答案 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();
}