Uvod o kapsulaciji na Javi

Inkapsulacija je eden od štirih osnovnih konceptov programskega programiranja na Javi. Glavna ideja tega je skrivanje podrobnosti o izvajanju od uporabnikov. Z drugimi besedami, enkapsulacija je zajem podatkov v eno samo enoto, da se prepreči dostop do njih iz zunanjega sveta. Ker so podatki skriti pred drugimi razredi, je ta postopek znan tudi kot skrivanje podatkov. Kot primer si oglejmo delo žarnice. Ne poznamo dejanskega dela za žarnico, tudi če ga uporabljamo. Toda v primeru Java Encapsulacije je možen dostop do podatkov s pomočjo modifikatorjev. Poglejmo jo v naslednjem razdelku.

Kako deluje kapsulacija v javi?

Inkapsulacija deluje na Javi avtor

  • Razglasitev atributov ali spremenljivk v razredu kot zasebnih

Na primer, ustvarjamo zaposlenega v razredu. Spremenljivke je treba nastaviti kot zasebne, kot je prikazano spodaj.

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

  • Ustvarjanje javnih metod v razredu, da bi dobili in nastavili atribute ali spremenljivke.

Sledi metoda get in metoda nastavitve za različne zasebne spremenljivke v razredu Employee.

Koda:

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

S temi metodami je mogoče razred narediti samo za pisanje ali samo za branje, tj. Te metode lahko preskočimo, če je to potrebno.

Sledijo nekatere prednosti enkapsulacije.

  • Enostavnost uporabe
  • Sposobnost ponovne uporabe ali spreminjanja kode na podlagi zahtev
  • Omeji dostopnost podatkov
  • Enostavnost pri testiranju enot, saj je koda zapečatena

Razred Java Bean je eden od primerov za popolnoma enkapsuliran razred, saj so vsi člani podatkov v razredu zasebni.

Primeri Java Capsulacije

Poglejmo primer enkapsulacije z metodami getter in setter. Za to ustvarite 2 razreda, enega z glavno metodo in drugega z metodami pridobivanja in nastavitve.

Primer 1

  • Zaposleni.java

Koda:

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

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

Izhod:

V zgornjem programu je razred Zaposleni inkapsuliran, saj so spremenljivke zasebne. Izvedbo je mogoče prebrati in napisati, saj je dobil in nastavil metode. Zasebne spremenljivke, kot so EmpName, EmpSal, EmpID, so dostopne s temi metodami in prikazane s klicanjem metod z uporabo predmeta.

Zdaj pa poglejmo, kako enkapsulacija deluje z razredom samo za branje.

Primer 2

  • Zaposlen.java

Koda:

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

Koda:

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

Izhod:

Podobno kot prvi primer, tudi tukaj uporabljamo zasebne spremenljivke. Razlika je v tem, da ne uporabljamo nastavljene metode, da bi postavili vrednosti za zasebne spremenljivke v razredu. Namesto tega vrednost dodelimo vrednostm spremenljivkam.

Zdaj lahko nadaljujemo s pisanjem samo razreda.

Primer 3

  • Zaposlen.java

Koda:

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

Koda:

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

Izhod:

V zgornjem primeru ne uporabljamo metode get za doseganje razreda samo za pisanje. spremenljivk tukaj ni mogoče spremeniti ali pridobiti. Ker vrednosti ni mogoče dobiti, za izpis vzorca uporabimo tiskanje znotraj nastavljene metode.

Zaključek

Inkapsulacija je koncept OOP, kjer bodo zajeti podatki, ki skrivajo vse podrobnosti o izvedbi. Dosežemo ga lahko z uporabo zasebnih spremenljivk in metod, kot so get, set za dostop do spremenljivk. Glavne prednosti Encapsulacije vključujejo fleksibilnost, skrivanje podatkov, enostavnost pri testiranju in ponovno uporabo .

Priporočeni članki

To je vodnik za Encapsulacijo na Javi. Tukaj razpravljamo, kako deluje enkapsulacija, primeri Java Encapsulacije s kodami in izhodom. Obiščite lahko tudi naše članke, če želite izvedeti več -

  1. Destruktor na Javi
  2. Postavitev v Javi
  3. Najboljši Java Compilers
  4. Vodič za kapsulacijo v C ++
  5. Zakaj potrebujemo enkapsulacijo v C?
  6. Pregled Enkapsulacije v JavaScript