ここで、パブリック、プライベート、および保護されたメソッドについて話していると思いますか?
もしそうなら、それらはセキュリティの目的のために存在しません。これらは、ソフトウェアを適切にモジュール化することを容易にするために存在します。(彼らがそれで成功するかどうかは、私が他の人に任せる議論です。しかし、それは彼らの目的のビジョンです。)
ライブラリを配信すると、後で別のバージョンのライブラリを配信し、プライベートとしてマークされたものを必要なだけ変更することができます。対照的に、もし私がそれらのものをプライベートとマークしていなかったら、誰かがどこかに直接アクセスしている可能性があるので、ソフトウェアの内部を変更することはできません。確かに、理論的には、文書化されたAPIを使用しないのは彼らのせいです。しかし、クライアントは、私のソフトウェアのアップグレードがソフトウェアを壊したという私のせいだと感じます。彼らは言い訳を望んでおらず、それを直したいのです。しかし、最初にアクセスを許可しない場合、私のAPIはAPIとして意図されたパブリックメソッドであり、問題は回避されます。
あなたが話している可能性のある2番目にありそうなことは、Javaのセキュリティモデルです。あなたがそれについて話しているなら、それが存在する理由は、Javaの元々のビジョンは、サードパーティのプログラム(ブラウザなど)の内部で対話的に動作するために、おそらく信頼できないアプレットを送信する人々に関係していたからです したがって、セキュリティモデルは、悪意のあるアプレットからユーザーを保護することを目的としていました。したがって、心配して保護するセキュリティ上の脅威は、ロードされる可能性のある他のソフトウェアと対話しようとする信頼できないアプレットです。