Î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:

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