Úvod do enkapsulácie v Jave

Zapuzdrenie je jedným zo štyroch základných objektovo orientovaných programovacích konceptov v Jave. Hlavnou myšlienkou toho je skrývanie podrobností o implementácii od používateľov. Inými slovami, zapuzdrenie je zabalenie údajov do jednej jednotky, aby sa zabránilo prístupu k nim z vonkajšieho sveta. Pretože údaje sú skryté pred ostatnými triedami, tento proces sa nazýva aj skrytie údajov. Uvažujme napríklad o fungovaní žiarovky. Skutočnú prácu za žiarovkou nevieme, aj keď ju používame. Ale v prípade Java Encapsulation je možné pristupovať k údajom pomocou modifikátorov. Pozrime sa na to v ďalšej časti.

Ako funguje zapuzdrenie v jave?

Zapuzdrenie funguje v Jave od

  • Vyhlásenie atribútov alebo premenných v triede za súkromné

Napríklad vytvárame zamestnanca triedy. Premenné musia byť nastavené ako súkromné, ako je uvedené nižšie.

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

  • Vytváranie verejných metód v triede s cieľom získať a nastaviť atribúty alebo premenné.

Nasleduje metóda get a metóda nastavenia pre rôzne súkromné ​​premenné v triede Employee.

kód:

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

Pomocou týchto metód je možné vytvoriť triedu iba na čítanie alebo len na čítanie, tj ak je to potrebné, môžeme tieto metódy vynechať.

Nasleduje niekoľko výhod zapuzdrenia.

  • Jednoduchosť použitia
  • Schopnosť opätovne použiť alebo upraviť kód na základe požiadaviek
  • Obmedzuje prístupnosť údajov
  • Jednoduchosť v testovaní jednotky, pretože kód je zapuzdrený

Trieda Java Bean je jedným z príkladov plne zapuzdrenej triedy, pretože všetky dátové členy v triede sú súkromné.

Príklady zapuzdrenia Java

Pozrime sa na príklad zapuzdrenia metódami getter aj setter. Na tento účel vytvorte 2 triedy - jednu s hlavnou metódou a druhú s metódami získavania a nastavovania.

Príklad 1

  • Employee.java

kód:

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

kód:
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());
)
)

Výkon:

Vo vyššie uvedenom programe je trieda Zamestnanec zapuzdrená, pretože premenné sú súkromné. Implementáciu je možné čítať a zapisovať, pretože má a nastavuje metódy. Súkromné ​​premenné, ako sú EmpName, EmpSal, EmpID, sú prístupné pomocou týchto metód a zobrazené volaním metód pomocou objektu.

Teraz sa pozrime, ako zapuzdrenie funguje s triedou len na čítanie.

Príklad 2

  • Employee.java

kód:

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

kód:

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

Výkon:

Podobne ako v prvom príklade tu používame aj súkromné ​​premenné. Rozdiel je v tom, že nepoužívame metódu set na nastavenie hodnôt pre súkromné ​​premenné v triede. Namiesto toho priamo priradíme hodnotu premenným.

Teraz môžeme pokračovať v písaní iba triedy.

Príklad 3

  • Employee.java

kód:

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

kód:

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

Výkon:

Vo vyššie uvedenom príklade nepoužívame metódu get na dosiahnutie triedy iba na písanie. To znamená, že premenné sa tu nedajú zmeniť alebo načítať. Pretože nie je možné získať hodnoty, používame tlač vo vnútri metódy setu na výstup vzorky.

záver

Zapuzdrenie je koncept OOP, v ktorom sa údaje zalomia a skryjú všetky podrobnosti implementácie. Môže sa to dosiahnuť použitím súkromných premenných a metód, ako je napríklad získanie, nastavenie prístupu k premenným. Medzi hlavné výhody zapuzdrenia patrí flexibilita, skrytie údajov, ľahkosť pri testovaní a opätovné použitie .

Odporúčané články

Toto bol sprievodca zapuzdrením do Java. Tu diskutujeme o tom, ako funguje zapuzdrenie, príklady zapuzdrenia Java s kódmi a výstupmi. Ak sa chcete dozvedieť viac, môžete si tiež prečítať naše dané články.

  1. Destruktor v Jave
  2. Rozloženie v Jave
  3. Najlepšie Java kompilátory
  4. Sprievodca zapuzdrením v C ++
  5. Prečo potrebujeme zapuzdrenie v C?
  6. Prehľad zapuzdrenia v JavaScripte

Kategórie: