Ich habe eine Klasse mit einer Methode, die ich nur für seine untergeordneten Objekte zugänglich sein möchte, und nicht für andere Klassen in diesem Paket.Java zwischen privat und geschützt
Modifier | Class | Package | Subclass | World
————————————+———————+—————————+——————————+———————
public | ✔ | ✔ | ✔ | ✔
————————————+———————+—————————+——————————+———————
protected | ✔ | ✔ | ✔ | ✘
————————————+———————+—————————+——————————+———————
no modifier | ✔ | ✔ | ✘ | ✘
————————————+———————+—————————+——————————+———————
private | ✔ | ✘ | ✘ | ✘
____________+_______+_________+__________+_______
my Modifier | ✔ | ✘ | ✔ | ✘
____________+_______+_________+__________+_______
Gibt es einen Workaround, um diese Art von Modifikator zu haben?
Vielleicht gibt es eine Möglichkeit, ein Paket endgültig zu machen, damit andere Programmierer keine Klassen in mein Paket hinzufügen können?
Oder gibt es eine Möglichkeit, die Instanz zu erhalten, die die Funktion aufgerufen hat, und zu prüfen, ob diese eine Instanz meines Objekts super
ist?
Oder muss ich es einfach verlassen, und nur geschützt verwenden, und andere Programmierer könnte Klassen zu meinem Paket hinzufügen ...
+1 für ASCII malen – mKorbel
@m Korbel definitiv, OP scheint, erhebliche Anstrengung dafür gesetzt zu haben =) – Juvanis
@mKorbel ich erweiterte diese ascii Tabelle von [diesem] (http://stackoverflow.com/questions/215497/in-java-whats-the-difference-between -public-default-protected-and-private? rq = 1) thread: – Jetse