Încapsulare în Java
Incapsularea în Java este un mecanism de împachetare a datelor (variabile) și a codului care acționează
asupra datelor (metode) împreună ca o singură unitate. În încapsulare, variabilele unei clase vor fi ascunse
de alte clase și pot fi accesate numai prin metodele clasei lor curente. Prin urmare, este, de asemenea,
cunoscut sub numele de ascunderea datelor.
Incapsularea în Java este un proces de împachetare a codului și a datelor într-o singură unitate, de
exemplu, o capsulă amestecată din mai multe medicamente.
Avantajul încapsulării în Java
Furnizând doar o metodă setter sau getter, puteți face clasa read-only sau write-only. Cu
alte
cuvinte, puteți sări peste metodele getter sau setter.
Vă oferă controlul asupra datelor. Să presupunem că doriți să setați valoarea id care ar
trebui să fie mai
mare decât 100, puteți scrie logica în metoda setter. Puteți scrie logica de a nu stoca numerele negative în
metodele setter.
Este o modalitate de a realiza ascunderea datelor în Java, deoarece alte clase nu vor putea
accesa datele
prin intermediul membrilor de date private.
Clasa de încapsulare este ușor de testat. Deci, este mai bine pentru testarea
unității.
IDE-urile standard oferă facilitatea de a genera getters și seteri. Deci, este ușor și rapid să
creați o
clasă încapsulată în Java.
Pentru a realiza încapsularea în Java:
- Declarați variabilele unei clase ca fiind private.
- Furnizați metode de setter și getter publice pentru a modifica și vizualiza valorile variabilelor.
Student.java
// o clasă Java care este o clasă complet încapsulată.
// are un membru privat de date și metode getter și setter.
package com.invataJava;
public class Student{
// date private
private String nume;
// getter pentru nume
public String getNume(){
return nume;
}
// setter pentru nume
public void setNume(){
this.nume = nume;
}
}
Test.java
// o clasă Java care testeaza clasa incapsulata
package com.invataJava;
public class Test{
public static void main(String args[]){
// cream o instanta a clasei incapsulate
Student s = new Student();
// setam numele din obiectul Student
s.setNume("Andrei");
// luam numele din obiectul Student
System.out.println(s.getName());
}
}
Afișare:
Andrei