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