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

diguage · 2013年03月04日 · 最后由 iBachue 回复于 2013年03月04日 · 2918 次阅读

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 概念更加广泛些。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号