私はどの言語でもアクセス制御が大好きですが、Java ではpackage-privateアクセス修飾子を使用することはほとんどありません (または使用しない)。
内部クラスはprivate、protected、またはにすることができますが、外部クラスはまたはpackage-privateのみにすることができます。外側のクラスが であるのに ではないのはなぜですか? サブクラスではなく、パッケージ全体でクラス/メソッド/フィールドが見えるように制限する利点は何ですか?package-privatepublicpackage-privateprotected