Saya kira Anda berbicara tentang metode publik, pribadi, dan terlindungi di sini?
Jika demikian, maka mereka tidak ada untuk tujuan keamanan. Mereka ada untuk tujuan memudahkan o menjamin bahwa perangkat lunak termodulasi dengan benar. (Apakah mereka berhasil dalam hal itu adalah debat saya akan pergi untuk orang lain. Namun, itulah visi untuk apa mereka.)
Misalkan saya memberikan perpustakaan, maka saya bebas untuk kemudian memberikan versi perpustakaan yang berbeda dan mengubah barang-barang yang ditandai sebagai pribadi sebanyak yang saya mau. Sebaliknya jika saya tidak menandainya sebagai barang pribadi, maka saya tidak akan dapat mengubah internal perangkat lunak saya karena seseorang, di suatu tempat, mungkin mengaksesnya secara langsung. Tentu saja, secara teori itu adalah kesalahan mereka karena tidak menggunakan API yang terdokumentasi. Tetapi klien akan menganggapnya sebagai kesalahan saya bahwa pemutakhiran perangkat lunak saya merusak perangkat lunak mereka. Mereka tidak ingin alasan, mereka ingin itu diperbaiki. Tetapi jika saya tidak membiarkan mereka memiliki akses untuk memulai, maka API saya adalah metode publik yang saya maksudkan sebagai API saya dan masalahnya dapat dihindari.
Hal kedua yang paling mungkin Anda bicarakan adalah model keamanan Java. Jika Anda membicarakan hal itu, maka alasan keberadaannya adalah bahwa visi asli untuk Java melibatkan orang-orang yang mengirim applet yang mungkin tidak terpercaya untuk bekerja secara interaktif di dalam program pihak ketiga (mis. Browser). Oleh karena itu model keamanan dimaksudkan untuk memberi pengguna beberapa perlindungan terhadap applet jahat. Oleh karena itu ancaman keamanan yang perlu dikhawatirkan dan dilindungi adalah applet yang tidak terpercaya yang mencoba berinteraksi dengan perangkat lunak lain yang mungkin dimuat.