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