Інкапсуляція Принципів ООП
Інкапсуляція
Ще один фундаментальний принцип об'єктно-орієнтованого програмування (ООП). Ймовірно, найважливіший принцип, оскільки вся парадигма ООП базується на ньому. Ви вже стикалися з цим принципом у цьому розділі, коли позначали поля та методи як private або public. Але зараз ми розглянемо цей принцип більш детально.
Примітка
Будь ласка, не плутайте слово 'інтерфейс' (шаблон для створення, зразок) з Інтерфейсом, який ми будемо вивчати у наступному розділі!
Модифікатори доступу
Модифікатори доступу є невід'ємною частиною інкапсуляції, тому, навіть якщо ми вже розглядали їх раніше, необхідно повторити цей матеріал. Нижче наведено визначення модифікаторів доступу разом із таблицею та коротким описом:
-
public: Члени з модифікатором доступуpublicдоступні з будь-якого місця у коді. Вони мають найширшу область видимості. Наприклад,publicметод можна викликати з будь-якого класу; -
private: Члени з модифікатором доступуprivateдоступні лише всередині класу, в якому вони оголошені. Вони невидимі для зовнішніх класів. Це забезпечує сильну інкапсуляцію; -
protected: Члени з модифікатором доступуprotectedдоступні в межах одного пакету та у підкласах, навіть якщо вони знаходяться в інших пакетах. Це дозволяє контрольовано ділитися інформацією; -
default (package-private): Якщо модифікатор доступу не вказано, член доступний лише в межах одного пакету. Це рівень доступу за замовчуванням.
Розглянемо, як модифікатори доступу працюють на практиці. Є два класи: один створений у тому ж пакеті, що й клас main, а інший — у іншому пакеті. Подивимось, як це впливає на доступ до членів:
На скріншотах видно, звідки доступні змінні з відповідними іменами.
Також нагадаю, що якщо ви хочете обійти модифікатори доступу, ви можете прочитати про це тут: посилання.
Примітка
Варто також зазначити, що методи також можуть мати модифікатори доступу. Вони працюють так само, як і для полів. Наприклад, метод із модифікатором доступу private буде доступний лише у класі, де він створений.
Підсумок
Інкапсуляція дуже корисна, коли дані потрібно організувати у відокремлені частини, що робить код структурованим. Крім того, завдяки інкапсуляції можна налаштовувати, де і як поля та методи будуть доступні.
1. Що таке інкапсуляція в Java?
2. Який модифікатор доступу є найсуворішим?
3. Які переваги інкапсуляції?
4. Які з наступних тверджень про інкапсуляцію є правильними?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
What are some real-world examples of encapsulation in Java?
Can you explain the difference between encapsulation and abstraction?
How do access modifiers help achieve encapsulation?
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. Які з наступних тверджень про інкапсуляцію є правильними?
Дякуємо за ваш відгук!