Зміст курсу
Java ООП
Java ООП
Принципи ООП: Інкапсуляція
Інкапсуляція
Ще один фундаментальний принцип об'єктно-орієнтованого програмування (ООП). Ймовірно, найважливіший принцип, оскільки вся парадигма ООП базується на ньому. Ви вже стикалися з цим принципом у цьому розділі під час позначення полів і методів як private
або public
. Але зараз ми розглянемо цей принцип детальніше.
Примітка
Будь ласка, не плутайте слово 'інтерфейс' (шаблон для створення, зразок) з Інтерфейсом, який ми будемо вивчати у наступному розділі!
Модифікатори доступу
Модифікатори доступу є невід'ємною частиною інкапсуляції, тому, навіть якщо ми вже розглядали їх раніше, необхідно повторити цей матеріал. Нижче наведено визначення модифікаторів доступу разом із таблицею та коротким описом:
public
: Члени з модифікатором доступуpublic
доступні з будь-якого місця в коді. Вони мають найширшу область видимості. Наприклад, методpublic
може бути викликаний з будь-якого класу;private
: Члени з модифікатором доступуprivate
доступні лише в межах класу, де вони оголошені. Вони невидимі для зовнішніх класів. Це забезпечує сильну інкапсуляцію;protected
: Члени з модифікатором доступуprotected
доступні в межах того ж пакету та для підкласів, навіть якщо вони знаходяться в інших пакетах. Це дозволяє контрольовано ділитися інформацією;default (package-private): Якщо модифікатор доступу не вказано, член доступний лише в межах того ж пакету. Це рівень доступу за замовчуванням.
Розглянемо, як модифікатори доступу працюють на практиці. Є два класи: один створений у тому ж пакеті, що й клас main
, а інший — у іншому пакеті. Подивимось, як на це впливають модифікатори доступу:
На скріншотах видно, звідки доступні змінні з відповідними іменами.
Також нагадаю, що якщо ви хочете обійти модифікатори доступу, ви можете прочитати про це тут: посилання.
Примітка
Варто також зазначити, що методи також можуть мати модифікатори доступу. Вони працюють так само, як і для полів. Наприклад, метод із модифікатором доступу private буде доступний лише в тому класі, де він створений.
Підсумок
Інкапсуляція дуже корисна, коли дані потрібно організувати по відсіках, що робить код високоструктурованим. Крім того, завдяки інкапсуляції можна налаштовувати, де і як ваші поля та методи можуть бути доступні.
1. Що таке інкапсуляція в Java?
2. Який модифікатор доступу є найсуворішим?
3. Які переваги інкапсуляції?
4. Які з наступних тверджень про інкапсуляцію є правильними?
Дякуємо за ваш відгук!