正しい型の暗黙的または明示的なレシーバーを使用して protected メソッドを呼び出すことができます。
private メソッドは、暗黙のレシーバーでのみ呼び出すことができます (self.foo= のような self setter メソッドを除く)。
self.foo=
self
protected メソッドと private メソッドの両方を呼び出すことができるのは、メソッドハンドラーのコンテキストからのみです。