Ruby 中 public, private, protected 方法的区别是什么?

· 约 3 分钟读完 · 第 75 / 199 章

推荐答案

在 Ruby 中,public、private 和 protected 是用于控制方法访问权限的关键字。它们的区别如下:

  • public: 默认情况下,所有方法都是 public 的。这意味着这些方法可以在任何地方被调用,无论是类内部还是外部。
  • private: private 方法只能在类内部被调用,且不能通过显式的接收者调用。它们只能通过隐式的 self 调用。
  • protected: protected 方法可以在类内部或子类中被调用,且可以通过显式的接收者调用,但接收者必须是同一个类或其子类的实例。

本题详细解读

public 方法

public 方法是 Ruby 中默认的访问级别。任何对象都可以调用 public 方法,无论是在类内部还是外部。例如:

private 方法

private 方法只能在类内部被调用,且不能通过显式的接收者调用。它们通常用于实现类的内部逻辑,而不希望外部直接访问。例如:

protected 方法

protected 方法可以在类内部或子类中被调用,且可以通过显式的接收者调用,但接收者必须是同一个类或其子类的实例。protected 方法通常用于在类或子类之间共享方法,而不希望外部直接访问。例如:

通过以上示例,可以清楚地看到 public、private 和 protected 方法在 Ruby 中的区别和使用场景。