Es ist spät und es ist zu lang, so dass ich Probleme habe, mich daran zu erinnern, wie das funktioniert.
Ich weiß, dass eine Innere Klasse Zugriff auf alles in der Äußeren Klasse hat (weil sie ein Mitglied dieser Klasse ist), aber was ist umgekehrt?
1) Hat die äußere Klasse Zugriff auf private Variablen und Methoden innerhalb einer inneren Klasse?
2) Ich habe Artikel gesehen, die erwähnen, dass innere Klassen privat sein sollten, so dass sie nur für die äußere Klasse zugänglich sind. Was bewirkt das für die Zugänglichkeit dieser inneren Klasse?
3) Was sind die besten Praktiken im Umgang mit Zugriffsebenen, wenn es um Ihre inneren Klassen geht? Ich gehe davon aus, mehr Verkapselung desto besser, aber geht das auf Kosten der Barrierefreiheit?
Danke!
Dieses Thema wird von Effective Java (2nd edition), Punkt 22: "Statische Member-Klassen über nicht-statische favorisieren" ausführlich behandelt.
Eine kurze Zusammenfassung:
Persönlich bin ich geneigt, eine innere Klasse zu implementieren, wenn dies zulässt, dass die Konstruktoren der inneren Klasse privat sind, d. h. wenn eine Klasse nur von einer anderen (äußeren) Klasse instanziiert werden kann. Jede zusätzliche Einkapselung, wie z. B. die Privatisierung der gesamten inneren Klasse, ist wünschenswert. aber öffentliche innere Klassen sind vollkommen akzeptabel. In Java gibt es viele Beispiele, z. B. AbstractMap.SimpleEntry.
Tags und Links java oop inner-classes