Інкапсуляція в Java
⚡ Розумний підсумок
Інкапсуляція в Java — це механізм, який об'єднує змінні та методи в єдине ціле, приховуючи внутрішні деталі. Він захищає дані об'єкта за допомогою приватних полів та контрольованого доступу через публічні методи отримання та встановлення.

Що таке інкапсуляція Java?
Інкапсуляція в Java це механізм для об’єднання змінних (даних) і методів (коду) в одне ціле. Це процес приховування деталей інформації та захисту даних і поведінки об’єкта. Це одна з чотирьох важливих концепцій ООП. Клас інкапсуляції легко тестувати, тому він також кращий для модульного тестування.
Натисніть тут якщо відео недоступне
Вивчіть інкапсуляцію в Java з прикладом
Щоб детально зрозуміти, що таке інкапсуляція, розглянемо наступний клас банківського рахунку з методами депозиту та показу балансу
class Account { private int account_number; private int account_balance; public void show Data() { // code to show data } public void deposit(int a) { if (a < 0) { // show error } else account_balance = account_balance + a; } }
Припустимо, хакеру вдалося отримати доступ до коду вашого банківського рахунку. Тепер він намагається внести суму -100 на ваш рахунок двома способами. Побачимо його перший метод або підхід.
Підхід 1: Він намагається внести недійсну суму (скажімо, -100) на ваш банківський рахунок, маніпулюючи кодом.
Тепер виникає питання – Це можливо? Нехай розслідують. Зазвичай змінна в класі встановлюється як «приватна», як показано нижче. Доступ до нього можливий лише за допомогою методів, визначених у класі. Жоден інший клас або об'єкт не може отримати до них доступ.
Якщо елемент даних є приватним, це означає, що до нього можна отримати доступ лише в межах того самого класу. Жоден зовнішній клас не може отримати доступ до приватних даних або змінної іншого класу. Отже, у нашому випадку хакер не може внести суму -100 на ваш рахунок.
Підхід 2: Перший підхід хакера не вніс суму. Далі він намагається внести суму -100, використовуючи метод «депозит».
Але реалізація методу має перевірку на від’ємні значення. Тому другий підхід також не вдається.
Таким чином, ви ніколи не надаєте свої дані стороннім особам. Що робить вашу програму безпечною.
Весь код можна розглядати як капсулу, і ви можете спілкуватися лише через повідомлення. Звідси і назва інкапсуляція.
Дані ховаються в Java
Дані ховаються в Java приховує змінні класу від інших класів. Доступ до них можна отримати лише через метод поточного класу. Це приховує деталі реалізації від користувачів. Але це більше, ніж приховування даних, призначено для кращого управління або групування.ping пов'язаних даних. Щоб досягти меншого ступеня інкапсуляції в Java, ви можете використовувати такі модифікатори, як «захищений» або «публічний». За допомогою інкапсуляції розробники можуть легко змінити одну частину коду, не впливаючи на іншу.
Геттер і сетер в Java
Геттер і сетер в Java це два звичайні методи, які використовуються для отримання та оновлення значень змінної. Вони в основному використовуються для створення, зміни, видалення та перегляду значень змінних. Метод setter використовується для оновлення значень, а метод getter використовується для читання або отримання значень. Вони також відомі як аксесор і мутатор.
Наступний код є прикладом методів getter і setter:
class Account{ private int account_number; private int account_balance; // getter method public int getBalance() { return this.account_balance; } // setter method public void setNumber(int num) { this.account_number = num; } }
У наведеному вище прикладі метод getBalance() є методом отримання, який зчитує значення змінної account_balance, а метод setNumber() є методом встановлення, який встановлює або оновлює значення для змінної account_number.
Abstracція проти інкапсуляції
Часто інкапсуляцію неправильно розуміють Abstracції. Давайте вивчати -
- Інкапсуляція — це більше про те, як досягти функціональності
- Abstracція більше стосується того, «що» може зробити клас.
Простим прикладом для розуміння цієї різниці є мобільний телефон. Де складна логіка на друкованій платі інкапсульована в сенсорний екран, а інтерфейс надається абс...tracвиклади це.
Переваги інкапсуляції в Java
- Інкапсуляція — це зв’язування даних із пов’язаними з ними функціями. Тут функціональні можливості означають «методи», а дані означають «змінні».
- Тому ми зберігаємо змінні та методи в одному місці. Це місце — «клас». Клас є основою для інкапсуляції.
- З Java Інкапсуляція, ви можете приховати (обмежити доступ) до критичних членів даних у вашому коді, що покращує безпеку
- Як ми обговорювали раніше, якщо член даних оголошено «приватним», тоді до нього можна отримати доступ лише в межах того самого класу. Жоден зовнішній клас не може отримати доступ до члена даних (змінної) іншого класу.
- Однак, якщо вам потрібно отримати доступ до цих змінних, ви повинні використовувати загальнодоступний «гетер» і «сетер» методи






