Una dintre modurile pe care le putem adopta încapsularea datelor este prin utilizarea accesoarelor și mutatorii. Rolul descriptorii de acces și mutatorii este de a reveni și de a seta valorile statutului unui obiect. Învățăm să programați descriptorii de acces și mutatorii în Java. De exemplu, vom folosi o clasă de persoană cu starea și constructorul deja definit:
Metode de acces
O metodă de acces este utilizată pentru a returna valoarea unui câmp privat. Urmați o schemă de nomenclatură care împiedică cuvântul „obține” la începutul numelui metodei. De exemplu, adăugați metode de acces pentru prima, numele de intermediare și numele de familie:
Aceste metode sunt întotdeauna returnate același tip de date ca câmpul privat corespunzător (de exemplu, șir) și apoi returnați pur și simplu valoarea acelui câmp Private.
Acum putem accesa valorile sale prin metodele unui obiect al unei persoane:
Metode mutante
O metodă mutatorului este utilizată pentru a seta o valoare a unui câmp privat. Urmați o schemă de nomenclatură care împiedică cuvântul „set” la începutul numelui metodei. De exemplu, să adăugăm câmpuri mutante pentru adresa și numele de utilizator:
Aceste metode nu au o rată de returnare și acceptați un parametru care este același tip de date ca și câmpul privat corespunzător. Apoi, parametrul este utilizat pentru a seta valoarea acelui câmp privat.
Acum este posibilă modificarea valorilor adresei și numele de utilizator din cadrul persoanei:
prin ce Pentru a utiliza accesorii și mutatori?
Este ușor să ajungi la concluzia că am putea schimba pur și simplu câmpurile private ale definiției clasei, astfel încât acestea să fie publice și să obțină aceleași rezultate. Este important să vă amintiți că vrem să ascundem datele obiectului cât mai mult posibil. Tamponul suplimentar oferit de aceste metode ne permite să:
- Schimbarea modului în care sunt manipulate datele cadru.
- impune validarea valorilor pe care câmpurile .
Să presupunem că am decis să modificăm cum stocăm al doilea nume. În loc de un singur lanț, putem folosi acum o matrice cu lanț:
Implementarea în cadrul obiectului sa schimbat, dar lumea exterioară nu este afectată. Modul în care sunt numiți metodele rămân exact aceleași:
sau, hai să spunem că aplicația care utilizează obiectul persoanei poate accepta numai numele de utilizator care au maximum zece caractere. Putem adăuga validare pe mutatorul SetUserName pentru a vă asigura că numele de utilizator respectă această cerință:
Acum, dacă numele de utilizator a trecut la MUtor SetUserName are mai mult de zece caractere, acesta este trunchiat automat. /p>