Wprowadzenie do enkapsulacji w Javie

Hermetyzacja jest jedną z czterech podstawowych koncepcji programowania obiektowego w Javie. Główną ideą tego jest ukrywanie szczegółów implementacji przed użytkownikami. Innymi słowy, enkapsulacja polega na owijaniu danych w jedną jednostkę, aby uniemożliwić dostęp do nich ze świata zewnętrznego. Ponieważ dane są ukryte przed innymi klasami, proces ten jest również znany jako ukrywanie danych. Rozważmy działanie żarówki jako przykład. Nie znamy faktycznego działania żarówki, nawet jeśli jej używamy. Ale w przypadku Java Encapsulation możliwy jest dostęp do danych za pomocą modyfikatorów. Przyjrzyjmy się temu w następnej sekcji.

Jak działa enkapsulacja w Javie?

Enkapsulacja działa w Javie przez

  • Deklarowanie atrybutów lub zmiennych w klasie jako prywatnych

Na przykład tworzymy pracownika klasy. Zmienne należy ustawić jako prywatne, jak pokazano poniżej.

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

  • Tworzenie metod publicznych w klasie w celu uzyskania i ustawienia atrybutów lub zmiennych.

Poniżej znajduje się metoda get i set dla różnych zmiennych prywatnych w klasie Pracownik.

Kod:

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;
)

Korzystając z tych metod, można ustawić klasę tylko do odczytu lub tylko do odczytu, tzn. Możemy pominąć te metody, jeśli jest to potrzebne.

Oto niektóre z zalet kapsułkowania.

  • Prostota aplikacji
  • Możliwość ponownego użycia lub modyfikacji kodu w zależności od wymagań
  • Ogranicza dostępność danych
  • Łatwość testowania jednostkowego, ponieważ kod jest zamknięty

Klasa Java Bean jest jednym z przykładów w pełni enkapsulowanej klasy, ponieważ wszystkie elementy danych w klasie są prywatne.

Przykłady enkapsulacji Java

Zobaczmy przykład enkapsulacji metodami gettera i settera. W tym celu utwórz 2 klasy - jedną z metodą główną, a drugą z metodami pobierania i ustawiania.

Przykład 1

  • Employee.java

Kod:

//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

Kod:
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());
)
)

Wynik:

W powyższym programie klasa Pracownik jest hermetyzowana, ponieważ zmienne są prywatne. Możliwe jest odczytanie i napisanie implementacji, ponieważ ma ona i ustawia metody. Dostęp do zmiennych prywatnych, takich jak EmpName, EmpSal, EmpID, można uzyskać za pomocą tych metod i wyświetlić, wywołując metody za pomocą obiektu.

Zobaczmy teraz, jak działa enkapsulacja z klasą tylko do odczytu.

Przykład 2

  • Employee.java

Kod:

//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

Kod:

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());
)
)

Wynik:

Podobnie jak w pierwszym przykładzie, tutaj również używamy zmiennych prywatnych. Różnica polega na tym, że nie używamy metody set do ustawiania wartości zmiennych prywatnych w klasie. Zamiast tego przypisujemy wartość bezpośrednio do zmiennych.

Teraz możemy przejść do pisania tylko zajęć.

Przykład 3

  • Employee.java

Kod:

//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

Kod:

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);
)
)

Wynik:

W powyższym przykładzie nie używamy metody get do uzyskania klasy tylko do zapisu. tzn. zmiennych nie można zmienić ani pobrać tutaj. Ponieważ nie jest możliwe uzyskanie wartości, do wydrukowania próbki używamy print wewnątrz ustawionej metody.

Wniosek

Enkapsulacja to koncepcja OOP, w której dane będą opakowane, ukrywając wszystkie szczegóły implementacji. Można to osiągnąć za pomocą zmiennych prywatnych i metod takich jak get, set, aby uzyskać dostęp do zmiennych. Główne zalety enkapsulacji obejmują elastyczność, ukrywanie danych, łatwość testowania i możliwość ponownego użycia .

Polecane artykuły

To był przewodnik po enkapsulacji w Javie. Tutaj omawiamy, jak działa enkapsulacja, przykłady enkapsulacji Java z kodami i danymi wyjściowymi. Możesz również przejrzeć nasze podane artykuły, aby dowiedzieć się więcej-

  1. Destructor w Javie
  2. Układ w Javie
  3. Najlepsze kompilatory Java
  4. Przewodnik po enkapsulacji w C ++
  5. Dlaczego potrzebujemy enkapsulacji w C?
  6. Omówienie enkapsulacji w JavaScript