public
は、メソッドをオーバーライドできることを意味し、囲んでいるクラスが表示されるすべてのコードで使用できます。
private
は、メソッドが外側のクラスによってのみ使用可能であることを意味します。
protected
メソッドは、それを囲むクラス、およびそのクラスを拡張するすべてのクラスによってのみ呼び出すことができることを意味します。
package (メソッドの前にキーワードを指定しない) は、そのメソッドが、外側のクラスと同じパッケージ内のクラス内の任意のコードによって呼び出されることを意味します。
Java では、デフォルト、パブリック、プロテクト、およびプライベートの違い
これらのさまざまなキーワードは、クラスの使用方法を設計する際に役立ちます。 public
メソッドは、クラスのユーザーに公開する「契約」の一部です。 private
メソッドは通常、クラスのユーザーとの「契約」を破ることなく、将来交換または変更する場合に備えてそのロジックを非表示にする必要があるため、外部の世界に決して公開すべきではない実装コードです。
protected
メソッドは、クラスを拡張するクラスで使用できます。したがって、オーバーライドに使用できるようにしたい実装があるかもしれません-または、クラスを機能させるためにこのメソッドを実装する拡張クラスが必要かもしれませんが、クラスの呼び出し元に公開する「契約」の一部ではありませんまたは拡張クラスを呼び出すもの。
package
パッケージ内の他のクラスが呼び出すことができるが、(ユーザーとの「契約」の一部ではなく) クラスを使用する人に公開したくない実装コードを作成するために使用します。必要に応じて、パッケージ レベルのメソッドを使用します。単体テストからトリッキーな実装コードをテストしますが、メソッドを公開したくありません。