だが、私はこのようなクラスがあるとしましょうあります:内部クラスがプライベートであることから、上記のコードでプライベート内部クラスにアクセス修飾子を宣言する必要が
public class OuterClass {
//...
private class InnerClass {
private int x; // This variable makes sense
public int y; // Is there any use for this?
}
}
を、唯一の外側のクラスは、アクセス権を持っていますすべての変数、さらにはプライベート変数にも適用されます。内部クラス自体は他のクラスからは見えませんが、外部クラスを囲んでいます。
したがって、変数y
は公開されていますが、外部クラス以外の他のクラスではアクセスできません。
プライベート内部クラスのすべてのアクセス修飾子がデフォルトでプライベートであるように見えますか?
それで、内部クラスのメンバーのいずれかに対してアクセス修飾子をまったく宣言する理由はありますか?
'public class InnerClass2 extends InnerClass {}'(これはお勧めしませんが) – fabian
@fabianとは何ですか? InnerClass2はまだ 'InnerClass'のpublicとprivateフィールドの全てにアクセスすることができます。 – Kingamere
このようにして、スーパークラスの 'public'メンバーへのアクセスを提供する' InnerClass'の 'public'サブクラスのインスタンスを作成することができます。しかし、実際のユースケースを考えることはできません... – fabian