Я припускаю, що ви тут говорите про публічні, приватні та захищені методи?
Якщо так, то вони не існують з метою безпеки. Вони існують з метою полегшення гарантії правильності модуляції програмного забезпечення. (Чи вдасться їм у цьому досягти дискусії, я залишу для інших. Це, однак, бачення того, для чого вони потрібні.)
Припустимо, я доставляю бібліотеку, то я можу пізніше надати іншу версію бібліотеки та змінити речі, позначені настільки приватними, наскільки я хочу. На противагу цьому, якби я не позначив цей матеріал приватним, я не зміг би змінити внутрішні програми свого програмного забезпечення, тому що хтось десь, ймовірно, має доступ до нього безпосередньо. Впевнені, що теоретично вони винні в тому, що вони не використовують документально підтверджений API. Але клієнт сприйме це як мою провину, що моє оновлення програмного забезпечення зламало їх програмне забезпечення. Вони не хочуть виправдання, вони хочуть виправити це. Але якщо я не дозволяю їм отримати доступ для початку, то мій API - це саме ті публічні методи, якими я мав намір бути своїм API, і проблема уникається.
Друга найвірогідніша річ, про яку можна говорити, - це модель безпеки Java. Якщо ви говорите про це, то причиною його існування було те, що оригінальне бачення Java передбачало людей, що надсилають, можливо, недовірені аплети для інтерактивної роботи в сторонніх програмах (наприклад, браузерах). Тому модель безпеки мала на меті забезпечити користувачам певний захист від шкідливих аплетів. Тому загроза безпеці, яку потрібно турбувати та захищати, - це ненадійні аплети, які намагаються взаємодіяти з іншим програмним забезпеченням, яке може бути завантажено.