Ruby では、インスタンス メソッドに対して 3 つの異なるレベルの可視性があります。
メソッドのデフォルトは ですpublic
。これは、おそらく慣れ親しんでいるものです。オブジェクトにアクセスできる場合は、常にこのメソッドにアクセスできます。
private
とprotected
似ています。クラスとサブクラスからのみアクセスできます。違いは、public
メソッドを明示的なレシーバーで呼び出すことができないことです。private
つまり、同じクラスの別のインスタンスから別のメソッドの関数を呼び出すことはできますが、呼び出すことはできませんprotected
。
したがって、クラス外でメソッドを使用できるようにする必要がある場合は、デフォルトの可視性を維持してくださいpublic
。カスタム比較ロジックなど、そのクラスのインスタンスからメソッドにアクセスする必要がある場合は、 を使用しますprotected
。また、メソッドがそのクラスのインスタンスの外部で表示されてはならないものである場合は、private
.
実際にあなたの質問に答えるにvisbility
は、可視性の現在の状態を返すメソッドがあります-それが、、、public
またはprivate
ですprotected
。