新手问题 Ruby 中的 self 和 Java 中的 this 有啥区别?

diguage · March 04, 2013 · Last by iBachue replied at March 04, 2013 · 2919 hits

Ruby 的 private 方法不能被同一个类别的其他对象实例调用; 在《Ruby 元编程》中看到这句话,但是不是很理解。谁能解释一下?

Ruby 中的 self 和 Java 中的 this 有啥区别?一直很纳闷!能否帮忙分析一下。

Java 中的 private 成员也是不能被其他实例访问的。

#1 楼 @wlon 这点我知道。关键是“Ruby 的 private 方法不能被同一个类别的其他对象实例调用;”这句话如何理解?

# 非法
class C
  def f
    self.private_method_a
  end
end

# 合法
class C
  def f
    private_method_a
  end
end    

总的来说就是私有方法不能前面加 context,即使那个 context 是 self 也不行。 那个我觉得差异不大吧。但是 self 概念更加广泛些。。

You need to Sign in before reply, if you don't have an account, please Sign up first.