Ich nehme an, dass Sie hier über öffentliche, private und geschützte Methoden sprechen?
Wenn ja, dann existieren sie nicht zum Zweck der Sicherheit. Sie dienen dazu, die Modularisierung der Software zu vereinfachen oder zu gewährleisten. (Ob ihnen das gelingt, werde ich anderen überlassen. Das ist jedoch die Vision, wofür sie da sind.)
Angenommen, ich liefere eine Bibliothek aus, dann kann ich später eine andere Version der Bibliothek ausliefern und als privat markierte Inhalte so oft ändern, wie ich möchte. Hätte ich dieses Zeug dagegen nicht als privat markiert, könnte ich keine Interna meiner Software ändern, da wahrscheinlich irgendwo jemand direkt darauf zugreift. Sicher, theoretisch liegt es an ihnen, dass sie die dokumentierte API nicht verwenden. Aber der Kunde wird es als meine Schuld ansehen, dass mein Software-Upgrade seine Software beschädigt hat. Sie wollen keine Ausreden, sie wollen, dass es behoben wird. Wenn ich ihnen jedoch zunächst keinen Zugriff gewähre, entspricht meine API genau den öffentlichen Methoden, die ich als meine API festlegen wollte, und das Problem wird vermieden.
Das zweitwahrscheinlichste, worüber Sie sprechen könnten, ist das Sicherheitsmodell von Java. Wenn Sie darüber sprechen, dann bestand der Grund dafür darin, dass die ursprüngliche Vision für Java darin bestand, dass Leute möglicherweise nicht vertrauenswürdige Applets sendeten, um interaktiv in Programmen von Drittanbietern (z. B. Browsern) zu arbeiten. Daher sollte das Sicherheitsmodell den Benutzern einen gewissen Schutz vor böswilligen Applets bieten. Daher besteht die Sicherheitsbedrohung darin, dass nicht vertrauenswürdige Applets versuchen, mit anderer Software zu interagieren, die möglicherweise geladen ist.