Incapsulare în Java OOP-uri cu Exemplu

Cuprins:

Anonim

Ce este încapsularea în Java?

Incapsularea în Java este un mecanism pentru a încheia variabile (date) și metode (cod) împreună ca o singură unitate. Este procesul de a ascunde detaliile informațiilor și de a proteja datele și comportamentul obiectului. Este unul dintre cele patru concepte OOP importante. Clasa de încapsulare este ușor de testat, deci este mai bună și pentru testarea unitară.

În acest tutorial, veți învăța-

  • Ce este încapsularea în Java?
  • Aflați încapsularea cu un exemplu
  • Ascunderea datelor în Java
  • Metode Getter și Setter în Java
  • Abstracție vs. încapsulare
  • Avantajele încapsulării în Java

Faceți clic aici dacă videoclipul nu este accesibil

Aflați încapsularea cu un exemplu

Pentru a înțelege ce este încapsularea în detaliu, luați în considerare următoarea clasă de cont bancar cu metode de depunere și de sold

class Account {private int account_number;private int account_balance;public void show Data() {//code to show data}public void deposit(int a) {if (a < 0) {//show error} elseaccount_balance = account_balance + a;}}

Să presupunem că un hacker a reușit să obțină acces la codul contului dvs. bancar. Acum, el încearcă să depună suma -100 în contul dvs. în două moduri. Să vedem prima sa metodă sau abordare.

Abordarea 1: El încearcă să depună o sumă nevalidă (să zicem -100) în contul dvs. bancar prin manipularea codului.

Acum, întrebarea este - Este posibil? Să investigăm.

De obicei, o variabilă dintr-o clasă este setată ca „privată” așa cum se arată mai jos. Poate fi accesat numai cu metodele definite în clasă. Nici o altă clasă sau obiect nu le poate accesa.

Dacă un membru al datelor este privat, înseamnă că poate fi accesat numai în cadrul aceleiași clase. Nici o clasă externă nu poate accesa un membru sau o variabilă de date private a altei clase.

Deci, în cazul nostru, hackerul nu poate depune suma -100 în contul dvs.

Abordarea 2 : prima abordare a hackerului nu a reușit să depună suma. Apoi, încearcă să depună o sumă -100 folosind metoda „depunere”.

Dar implementarea metodei are o verificare a valorilor negative. Așadar, a doua abordare eșuează.

Astfel, nu vă expuneți niciodată datele unei terțe părți. Ceea ce face aplicația dvs. sigură.

Întregul cod poate fi gândit la o capsulă și puteți comunica numai prin intermediul mesajelor. De aici și numele încapsulării.

Ascunderea datelor în Java

Ascunderea datelor în Java este ascunderea variabilelor unei clase de alte clase. Poate fi accesat numai prin metoda clasei lor actuale. Ascunde detaliile de implementare de la utilizatori. Dar, mai mult decât ascunderea datelor, este destinat pentru o mai bună gestionare sau grupare a datelor conexe.

Pentru a obține un grad mai mic de încapsulare în Java, puteți utiliza modificatori precum „protejat” sau „public”. Cu încapsulare, dezvoltatorii pot schimba cu ușurință o parte a codului fără a-i afecta pe alta.

Getter și Setter în Java

Getter și Setter în Java sunt două metode convenționale utilizate pentru recuperarea și actualizarea valorilor unei variabile. Acestea sunt utilizate în principal pentru a crea, modifica, șterge și vizualiza valorile variabilei. Metoda setter este utilizată pentru actualizarea valorilor, iar metoda getter este utilizată pentru citirea sau recuperarea valorilor. Sunt, de asemenea, cunoscuți ca accesori și mutatori.

Următorul cod este un exemplu de metode getter și setter:

class Account{private int account_number;private int account_balance;// getter methodpublic int getBalance() {return this.account_balance;}// setter methodpublic void setNumber(int num) {this.account_number = num;}}

În exemplul de mai sus, metoda getBalance () este metoda getter care citește valoarea variabilei cont_balant și setNumber () metoda este metoda setter care setează sau actualizează valoarea pentru variabila cont_numer.

Abstracție vs. încapsulare

Deseori încapsularea este înțeleasă greșit prin abstractizare. Sa invatam-

  • Incapsularea este mai mult despre „Cum” pentru a realiza o funcționalitate
  • Abstracția este mai mult despre „Ce” poate face o clasă.

Un exemplu simplu pentru a înțelege această diferență este un telefon mobil. În cazul în care logica complexă din placa de circuite este încapsulată într-un ecran tactil, iar interfața este furnizată pentru a o extrage.

Avantajele încapsulării în Java

  • Incapsularea leagă datele cu funcționalitățile sale conexe. Aici funcționalitățile înseamnă „metode”, iar datele înseamnă „variabile”
  • Așadar, păstrăm variabile și metode într-un singur loc. Acel loc este „clasa”. Clasa este baza pentru încapsulare.
  • Cu Java Encapsulation, puteți ascunde (restricționa accesul) membrii de date critici din codul dvs., ceea ce îmbunătățește securitatea
  • Așa cum am discutat mai devreme, dacă un membru al datelor este declarat „privat”, atunci acesta poate fi accesat numai în cadrul aceleiași clase. Nicio clasă externă nu poate accesa membrul de date (variabilă) al altei clase.
  • Cu toate acestea, dacă trebuie să accesați aceste variabile, trebuie să utilizați metode publice „getter” și „setter” .