encapsulation java
Дізнайтеся про інкапсуляцію в Java із прикладами, навіщо це нам потрібно, пов’язані методи отримання та отримання:
У цьому підручнику ми обговоримо ще одну концепцію ООП - “Інкапсуляція”. ООП має чотири стовпи, а саме абстракцію, інкапсуляцію, поліморфізм та успадкування.
Хоча абстракція використовується для надання кінцевому користувачеві лише відповідних деталей, інкапсуляція в основному стосується безпеки даних. Забезпечуючи безпеку даних, інкапсуляція захищає членів даних від небажаного доступу, вказуючи модифікатори доступу, а також об’єднує дані в єдиний блок.
=> Ознайомтесь з Ідеальним посібником з навчання Java тут.
То як ми можемо визначити інкапсуляцію в Java?
Визначення інкапсуляції
'Інкапсуляцію в Java можна визначити як механізм, за допомогою якого дані та методи, що працюють з цими даними, обертаються, щоб утворити єдину одиницю'.
Що ви дізнаєтесь:
Що таке інкапсуляція в Java
За допомогою інкапсуляції ми також можемо приховати члени даних класу (змінні) від інших класів. До цих змінних-членів даних можна отримати непрямий доступ, використовуючи методи класу, в якому вони оголошені. Методи, в свою чергу, доступні за допомогою об'єкта цього класу.
Отже, що ми робимо висновок із наведеного вище визначення, це те, що ми приховали змінні-дані даних всередині класу, а також вказали модифікатори доступу, щоб вони не були доступними для інших класів.
Таким чином, інкапсуляція - це також свого роду «приховування даних», хоча пізніше в підручнику ми побачимо, що інкапсуляція - це не те саме, що приховування даних.
Наведений вище малюнок представляє клас, який є блоком інкапсуляції, який об’єднує дані та методи, що працюють з цими даними, в єдиний блок.
Оскільки інкапсуляція в основному має справу з даними, її по-іншому називають „інкапсуляцією даних”.
найкраще програмне забезпечення для створення блок-схем
Ми можемо візуалізувати інкапсуляцію як медичну капсулу. Як ми всі знаємо, ліки укладені всередині медичної капсули. Подібним чином дані та методи укладені в єдиний блок інкапсуляції.
Таким чином, інкапсуляція виконує функцію захисного екрану навколо даних і запобігає несанкціонованому доступу до даних з боку зовнішнього світу. Іншими словами, він захищає конфіденційні дані нашого додатку.
У Java є два кроки для реалізації інкапсуляції. Наступні кроки:
- Використовуйте модифікатор доступу ‘private’, щоб оголосити змінні члена класу.
- Щоб отримати доступ до цих приватних змінних членів та змінити їх значення, ми повинні надати публічний метод getter та setter відповідно.
Давайте тепер реалізуємо приклад інкапсуляції в Java.
Приклад інкапсуляції Java
//Student_Id and name bundled in a unit 'Student' => encapsulation class Student { private int Student_Id; private String name; //getters, setters for Student_Id and name fields. public int getId() { return Student_Id; } public void setId(int s_id) { this.Student_Id = s_id; } public String getname() { return name; } public void setname(String s_name) { this.name = s_name; } } class Main{ public static void main(String() args) { //create an object of Student class Student s=new Student(); //set fields values using setter methods s.setId (27); s.setname('Tom Lee'); //print values using getter methods System.out.println('Student Data:' + '
Student ID:' + s.getId() + ' Student Name:' + s.getname()); } }
Вихід:
У наведеній вище програмі ми оголошуємо клас, який є одиницею інкапсуляції. Цей клас Student об’єднав дані (Student_Id та ім’я) та методи зчитування та встановлення значень для цих членів в єдину одиницю.
Зверніть увагу на модифікатори доступу, пов’язані з полями-членами. Обидва поля учасника є приватними, тому вони не доступні поза класом Student.
Ми пропонуємо getters (getId та getname) для зчитування значень цих полів та методи встановлення (setId та setname) для встановлення значень для цих методів. Це єдиний доступ, який вони мають, і це також слід робити за допомогою об’єкта класу Student.
Методи Геттера та Сеттера
Для реалізації інкапсуляції в Java ми робимо змінні-члени даних класу приватними. Тепер ці приватні змінні недоступні ні для чого, окрім класу, включаючи об'єкт класу.
Це означає, що якщо ми маємо клас ABC наступним чином.
клас ABC {
приватний інтерактивний вік;
}
Створимо об’єкт класу ABC таким чином:
ABC abc = новий ABC ();
abc.age = 21; // помилка компілятора
Отже, у наведеному вище коді доступ до приватної змінної за допомогою об’єкта класу призведе до помилки компілятора.
Щоб отримати доступ до приватних змінних та прочитати їх значення та встановити в них деякі нові значення, нам потрібен певний спосіб зробити це. Таким чином, Java забезпечує спосіб доступу до приватних змінних за допомогою методів getter та setter.
Getter і Setters - це загальнодоступні методи, які ми можемо використовувати для створення, модифікації, видалення або просто перегляду значень приватних змінних.
Наведена нижче програма є прикладом методів Getter та Setter.
//Account class - private data members bundled with getters and setters class Account { //private data members private long acc_no; private String name,email; private float amount; //public getter and setter methods for each data member public long getAcc_no() { return acc_no; } public void setAcc_no(long acc_no) { this.acc_no = acc_no; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public float getAmount() { return amount; } public void setAmount(float amount) { this.amount = amount; } } public class Main { public static void main(String() args) { //create instance of Account class Account myAcc=new Account(); //set values for data members through setter methods myAcc.setAcc_no(775492842L); myAcc.setName('SoftwareTestingHelp.com'); myAcc.setEmail('sth_account@sth.com'); myAcc.setAmount(25000f); //read data member values through getter methods System.out.println('Account No:' + myAcc.getAcc_no()+' '+'Account Name:' + myAcc.getName()+'
'+'Account holder email:' + myAcc.getEmail()+'
' + 'Amount in Account:' + myAcc.getAmount()); } }
Вихід:
Вища програма має клас Account і має чотири приватні змінні, пов’язані з обліковим записом. Оскільки всі члени даних є приватними, ми надали методи отримання та встановлення для кожної з цих змінних.
У основному методі ми читаємо та встановлюємо значення для цих приватних змінних за допомогою методів public getter та setter, доступ до яких здійснюється через об'єкт класу Account.
Приховування даних у Java
Часто ми використовуємо інкапсуляцію та приховування даних як взаємозамінні. Але обидва не однакові. Інкапсуляція Java має справу з групуванням пов’язаних даних в єдиний блок для забезпечення кращого управління та безпеки даних.
З іншого боку, приховування даних обмежує доступ члена даних, приховуючи деталі реалізації. Хоча інкапсуляція - це не зовсім приховування даних, вона надає нам спосіб приховування даних. Приховування даних досягається за допомогою модифікаторів доступу.
Java надає чотири модифікатори доступу.
- публічний: Доступно кожному.
- приватний: Доступно лише в класі.
- захищений: Доступний до вміщуваного пакета та підкласів.
- за замовчуванням: Доступно в пакеті.
Інкапсуляція об’єднує дані в одну одиницю, тож певним чином вона приховує дані. Крім того, це робить дані приватними і, таким чином, недоступним для зовнішнього світу. Для того, щоб зробити дані приватними, ми використовуємо модифікатор доступу private, який є концепцією приховування даних.
У той же час, лише відповідні деталі надаються кінцевому користувачеві без викриття деталей реалізації, що є визначенням абстракції. Таким чином, ми можемо розглядати інкапсуляцію як комбінацію абстракції, а також приховування даних.
Навіщо нам потрібна інкапсуляція
Існують різні причини, чому інкапсуляція необхідна в Java:
- Інкапсуляція дозволяє нам змінювати код або частину коду без необхідності змінювати будь-які інші функції або код.
- Інкапсуляція контролює, як ми отримуємо доступ до даних.
- Ми можемо модифікувати код на основі вимог за допомогою інкапсуляції.
- Інкапсуляція робить наші програми простішими.
Часті запитання
Q # 1) Чому в Java використовується інкапсуляція?
Відповідь: Інкапсуляція в Java переважно корисна для приховування даних. Або іншими словами, вирішити питання про доступ, що надається до даних, щодо того, хто може отримати до них доступ, а хто - ні.
Q # 2) Що таке інкапсуляція в ООП?
Відповідь: Інкапсуляція є однією з важливих опор об’єктно-орієнтованої мови програмування, і вона стосується об’єднання даних та методів, що працюють з цими даними, в єдину одиницю. Наприклад, клас на Java - це інкапсульована структура. Інкапсуляція також має справу з рішеннями щодо забезпечення доступу до даних.
Q # 3) У чому перевага інкапсуляції в Java?
додаток, щоб шпигувати за іншим телефоном
Відповідь: Основною перевагою інкапсуляції в Java є приховування даних. За допомогою інкапсуляції ми можемо дозволити програмісту приймати рішення щодо доступу до даних та методів, що працюють з цими даними. Наприклад, якщо ми хочемо, щоб певна частина даних була недоступною для будь-кого за межами класу, тоді ми робимо ці дані приватними.
Q # 4) Що таке процес інкапсуляції?
Відповідь: Інкапсуляція - це процес збору даних з одного формату або протоколу (мережевими термінами) та їх переклад або переформатування в інший формат або протокол, щоб дані були доступні в усіх додатках або мережі та одночасно захищені.
Q # 5) Який останній крок в інкапсуляції даних?
Відповідь: Останнім кроком інкапсуляції є перетворення інформації користувача на еквівалентні дані. Потім ці дані змінюються на сегменти, які надалі трансформуються в пакети даних. Пакети даних поміщаються в логічний фрейм, який можна передавати туди-сюди в програмному середовищі
Висновок
На цьому наш підручник з інкапсуляції в Java закінчується. Інкапсуляція - це техніка об’єднання змінних-членів та методів, що діють на ці члени даних, в одну одиницю. Клас у Java є класичним прикладом інкапсуляції, оскільки він обертає дані та методи в єдине ціле.
Java досягає реалізації інкапсуляції, роблячи всі члени даних приватними, а потім надаючи загальнодоступні методи отримання та встановлення, щоб ми могли читати значення приватних змінних та встановлювати нові значення для цих змінних.
=> Завітайте сюди, щоб ознайомитись із ексклюзивною серією навчальних посібників Java.
Рекомендована література
- Підручник JAVA для початківців: 100+ практичних навчальних посібників Java
- TreeMap в Java - Підручник з прикладами Java TreeMap
- Двомісний підручник з прикладами програмування
- Підручник з Java Float із прикладами програмування
- Зворотний рядок Java: Підручник із прикладами програмування
- Java Enum: Підручник з перелічення Java з прикладами
- Java Integer та клас Java BigInteger з прикладами
- Рядок Java містить () Підручник із методів із прикладами