Вступ про інкапсуляцію на Java

Інкапсуляція - один із чотирьох основних об'єктно-орієнтованих програм програмування на Java. Основна ідея цього полягає в приховуванні деталей впровадження від користувачів. Іншими словами, інкапсуляція - це загортання даних в єдину одиницю з метою запобігання доступу до них із зовнішнього світу. Оскільки дані приховані від інших класів, цей процес також відомий як приховання даних. Розглянемо роботу лампочки як приклад. Ми не знаємо фактичної роботи за лампочкою, навіть якщо ми її використовуємо. Але у випадку інкапсуляції Java є доступ до даних за допомогою модифікаторів. Давайте розглянемо це в наступному розділі.

Як працює інкапсуляція в Java?

Інкапсуляція працює в Java від

  • Оголошення атрибутів або змінних у класі як приватних

Наприклад, ми створюємо співробітника класу. Змінні потрібно встановити як приватні, як показано нижче.

private String EmpName;
private int EmpID;
private int EmpSal;

  • Створення загальнодоступних методів у класі для отримання та встановлення атрибутів чи змінних.

Далі йде метод get і метод встановлення для різних приватних змінних у класі Employee.

Код:

public int getEmpSal()
(
return EmpSal;
)public String getEmpName()
(
return EmpName;
)
public int getEmpID()
(
return EmpID;
)
public void setEmpSal( int EmpSal)
(
this.EmpSal = EmpSal;
)
public void setEmpName(String EmpName)
(
this.EmpName = EmpName;
)
public void setEmpID( int EmpID)
(
this.EmpID = EmpID;
)

За допомогою цих методів можна зробити клас лише для запису чи лише для читання, тобто ми можемо пропустити ці методи, якщо це потрібно.

Нижче наведено деякі переваги інкапсуляції.

  • Простота в застосуванні
  • Можливість повторного використання або зміни коду на основі вимог
  • Обмежує доступність даних
  • Легкість в одиничному тестуванні, оскільки код інкапсульований

Клас Java Bean - один із прикладів повністю інкапсульованого класу, оскільки всі члени даних класу є приватними.

Приклади інкапсуляції Java

Подивимось приклад інкапсуляції як методами геттера, так і сетера. Для цього створіть 2 класи - один з основним методом та інший із методами отримання та встановлення.

Приклад 1

  • Співробітник.java

Код:

//Java program for Encapsulation with both read and write
public class Employee (
//private variables which can be accessed by public methods of the class
private String EmpName;
private int EmpID;
private int EmpSal;
// get method to access the private integer variable EmpSal
public int getEmpSal()
(
return EmpSal;
)
// get method to access the private string variable EmpName
public String getEmpName()
(
return EmpName;
)
// get method to access the private integer variable EmpID
public int getEmpID()
(
return EmpID;
)
// set method to access the private integer variable EmpSal
public void setEmpSal( int EmpSal)
(
this.EmpSal = EmpSal;
)
// set method to access the private string variable EmpName
public void setEmpName(String EmpName)
(
this.EmpName = EmpName;
)
// set method to access the private integer variable EmpID
public void setEmpID( int EmpID)
(
this.EmpID = EmpID;
)
)

  • EmployeeEncaps.java

Код:
public class EmployeeEncaps (
public static void main(String() args) (
Employee EmpObj= new Employee(); //object of the class Employee
//passing the values to the methods using object
EmpObj.setEmpName("Anna");
EmpObj.setEmpSal(30000);
EmpObj.setEmpID(670311);
// Printing values of the variables
System.out.println("Employee's Name: " + EmpObj.getEmpName());
System.out.println("Employee's ID: " + EmpObj.getEmpID());
System.out.println("Employee's Salary: " + EmpObj.getEmpSal());
)
)

Вихід:

У вищезгаданій програмі клас Співробітник інкапсульовано, оскільки змінні є приватними. Можна прочитати та записати реалізацію, оскільки вона отримала та встановила методи. До приватних змінних, таких як EmpName, EmpSal, EmpID, звертаються за допомогою цих методів і відображаються шляхом виклику методів за допомогою об'єкта.

Тепер давайте подивимося, як працює інкапсуляція з класом лише для читання.

Приклад 2

  • Співробітник.java

Код:

//Java program for Encapsulation with read permission
public class Employee (
//private variables which can be accessed by public methods of the class
private String EmpName = "Adam";
private int EmpID = 670388;
private int EmpSal = 35000;
// get method to access the private integer variable EmpSal
public int getEmpSal()
(return EmpSal;
)// get method to access the private string variable EmpName
public String getEmpName()
(
return EmpName;
)
// get method to access the private integer variable EmpID
public int getEmpID()
(
return EmpID;
)
)

  • EmployeeEncaps.java

Код:

public class EmployeeEncaps (
public static void main(String() args) (
Employee EmpObj= new Employee(); //object of the class Employee
// Printing values of the variables
System.out.println("Employee's Name: " + EmpObj.getEmpName());
System.out.println("Employee's ID: " + EmpObj.getEmpID());
System.out.println("Employee's Salary: " + EmpObj.getEmpSal());
)
)

Вихід:

Як і у першому прикладі, тут ми також використовуємо приватні змінні. Різниця полягає в тому, що ми не використовуємо метод set для встановлення значень для приватних змінних у класі. Натомість ми безпосередньо присвоюємо значення змінним.

Тепер ми можемо перейти до написання лише класу.

Приклад 3

  • Співробітник.java

Код:

//Java program for Encapsulation with write permission
public class Employee (
//private variables which can be accessed by public methods of the class
private String EmpName;
private int EmpID;
private int EmpSal;
// set method to access the private integer variable EmpSal
public void setEmpSal( int EmpSal)
(
this.EmpSal = EmpSal;
//for sample output
System.out.println("Employee's Salary: " + EmpSal);
)
// set method to access the private string variable EmpName
public void setEmpName(String EmpName)
(
this.EmpName = EmpName;
//for sample output
System.out.println("Employee's Name: " + EmpName);
)// set method to access the private integer variable EmpID
public void setEmpID( int EmpID)
(
this.EmpID = EmpID;
//for sample output
System.out.println("Employee's ID: " + EmpID);
)
)

  • EmployeeEncaps.java

Код:

public class EmployeeEncaps (
public static void main(String() args) (
Employee EmpObj = new Employee(); //object of the class Employee
//passing the values to the methods using object
EmpObj.setEmpName("Iza");
EmpObj.setEmpID(670472);
EmpObj.setEmpSal(48000);
)
)

Вихід:

У наведеному вище прикладі ми не використовуємо метод get для досягнення лише запису. тобто змінні не можуть бути змінені або відновлені тут. Оскільки неможливо отримати значення, ми використовуємо друк всередині заданого методу для виведення вибірки.

Висновок

Інкапсуляція - це концепція OOP, в яку будуть обгортати дані, приховуючи всі деталі реалізації. Це може бути досягнуто за допомогою приватних змінних та таких методів, як отримати, встановити доступ до змінних. Основними перевагами інкапсуляції є гнучкість, приховування даних, легкість у тестуванні та повторне використання .

Рекомендовані статті

Це був посібник з інкапсуляції на Java. Тут ми обговорюємо, як працює інкапсуляція, приклади інкапсуляції Java з кодами та висновками. Ви також можете переглядати наші статті, щоб дізнатися більше -

  1. Деструктор на Java
  2. Макет на Java
  3. Кращі компілятори Java
  4. Посібник з інкапсуляції в C ++
  5. Для чого нам потрібна інкапсуляція в С?
  6. Огляд інкапсуляції в JavaScript