Articles

ce este o metodă mutator în Java?

aflați ce este o metodă mutator în java și beneficiile utilizării mutatori și metode accessor. Toate explicațiile includ exemple de ilustrat.

Card image cap

În acest articol, veți învăța ce metodă mutator în metoda Java și accessor. În plus, veți înțelege beneficiile utilizării metodelor mutator și accessor și veți vedea câteva exemple java.

conceptele metodei mutator și Accesor sunt strâns legate de programarea și încapsularea orientată pe obiecte. În cazul în care nu sunteți familiarizați cu programarea orientată pe obiecte. Am inclus o scurtă introducere mai jos; cu toate acestea, dacă doriți detalii suplimentare, consultați documentația.

cuprins

recapitulare Programare orientată pe obiecte

Programare orientată pe obiecte înseamnă că rezolvați probleme reprezentând entitățile problemei ca clase. O clasă are o stare și metode în care starea este un set de variabile care conțin datele relevante din reprezentarea noastră. Iar metodele determină operațiile pe care le poate efectua clasa noastră.

de exemplu, putem defini cercul clasei:

public class Circle {private float radius; public Circle(float newRadius) { this.radius = newRadius; } public double area(){ return Math.PI * Math.pow(radius, 2); } }

această clasă reprezintă conceptul cercului. Starea clasei cercului are raza și o metodă numită area(), care returnează zona cercului.

puteți adăuga următorul cod laCircle pentru a-l testa:

public static void main(String args){ Circle circle1 = new Circle(3); System.out.println(circle1.area()); }

ieșire:

28.274333882308138

recapitulare încapsulare

am definit o clasă folosind programarea orientată pe obiecte și am creat obiectulcircle1 al claseiCircle. Ce se întâmplă dacă aș vrea să modific raza obiectului circle1. În ceea ce privește codul, nu îl pot schimba, deoarece nu există nicio metodă de accesare a variabilei radius. Tot ce pot face este să creez un nou obiect cerc cu o rază diferită. Ce pot face pentru a corecta acest lucru?

puteți face două lucruri; unul va duce la o clasă bine concepută, iar celălalt la un design sărac, dificil de menținut. O opțiune este declararea câmpului radius ca câmp public, deci este accesibil în afara clasei. Vedeți modificările de mai jos:

public class Circle {public float radius; public Circle(float newRadius) { this.radius = newRadius; } public double area(){ return Math.PI * Math.pow(radius, 2); } public static void main(String args){ Circle circle1 = new Circle(3); System.out.println(circle1.radius); circle1.radius = 5; System.out.println(circle1.radius); } }

ieșire:

3.05.0

cealaltă opțiune este crearea de metode pentru accesarea și modificarea câmpului radius, care vă permite să ascundeți detaliile implementării. Acest mecanism este, de asemenea, cunoscut sub numele de încapsulare.

definiție metodă Mutator în Java

metoda mutator în java, și orice limbaj de programare orientat-obiect, este o metodă care vă permite să modificați variabilele din interiorul clasei. Privat este nivelul de acces pentru variabile, ceea ce înseamnă că singura modalitate de a schimba variabilele este prin utilizarea metodelor mutator. În acest fel, metodele mutator pot controla validitatea și calitatea datelor salvate în clasă.

de exemplu, în fragmentul de cod anterior, metodasetRadius() este o metodă mutantă. Ai putea modifica această metodă pentru a adăuga unele de validare a datelor. De exemplu, un exemplu de validare a datelor ar putea fi verificarea dacă noua rază este un număr negativ.

definiția metodei accesoriilor în Java

metodele accesoriilor sunt metode care permit citirea câmpurilor clasei la alte metode sau clase din afara clasei. În acest fel vă permite să controlați modul în care codul client poate accesa câmpurile de clasă.

mutatori și accesori Exemple

să vedem câteva exemple pentru a ilustra metodele mutator și Accesor. Setters și getters este un alt mod de a se referi la Accesor și mutator metode.

mai jos este un exemplu de cum să adăugați getters la o clasă. Clasa se numește Productși are două getters:getPrice()șigetName(). Aceste metode permit oricărui cod client să acceseze variabila de clasă, care este price și name.

import java.math.BigDecimal;public class Product { private BigDecimal price; private String name;// getter or accessor methods public BigDecimal getPrice() { return price; } public String getName() { return name; }}

și acum, voi adăuga mutatorii, astfel încât să pot accesa și modifica variabila de clasă.

import java.math.BigDecimal;public class Product { private BigDecimal price; private String name; public BigDecimal getPrice() { return price; } public String getName() { return name; } // mutator or setter methods public void setPrice(BigDecimal price) { if(price.compareTo(BigDecimal.ZERO)<0 )throw new IllegalArgumentException("Empty product name"); this.price = price; } public void setName(String name) { if(name.isEmpty()) throw new IllegalArgumentException("Empty product name"); this.name = name; }}

după cum puteți vedea mai sus, metodele settersetPrice()șisetName() includ, de asemenea, validarea, asigurându-vă că datele transmise îndeplinesc anumite criterii. De exemplu, una dintre cerințe este ca un preț să fie întotdeauna peste zero. În cazul în care parametrul nu este valid, codul va arunca o excepție. În caz contrar, va atribui noua valoare.

convenții de denumire pentru mutatori

în java, numele acestor metode, accesori și mutatori ar trebui să urmeze convenții de denumire specifice. Aceste reguli sunt în întregime stabilizate, ceea ce le face esențiale de urmat. Nerespectarea acestor convenții poate crea frustrare și confuzie atunci când alte persoane vă citesc codul.

să începem cu convențiile de denumire pentru mutatori. Metoda trebuie declarată publică și returnată nulă. Mai mult, numele metodei ar trebui să înceapă cu cuvântul set cu litere mici. Urmat de numele variabilei de clasă cu o majusculă inițială. De exemplu, dacă clasa noastră are o variabilă numită age, atunci metoda mutatorului ar trebui să arate după cum urmează:

public void setAge(int age){...}

convenții de denumire pentru Accesori

împreună cu mutatori, am văzut accesori, care urmează, de asemenea, o convenție de denumire similară. Regulile sunt ca metoda să fie declarată publică. În plus, numele metodei ar trebui să înceapă cu get, urmat de numele variabilei clasei cu o majusculă inițială. Metoda nu are parametri și returnează tipul de variabilă instanță. Urmând exemplul anterior, să creăm o metodă de acces pentruage variabilă:

public int getAge(){...}

beneficiile mutatorilor și accesoriilor

până în prezent, am văzut metodele Accesor și mutator în java cu câteva exemple. Și familiarizați-vă cu convențiile de denumire pe care ar trebui să le urmați atunci când declarați aceste metode. Cu toate acestea, cum sunt utile aceste metode? Principalul beneficiu este încapsularea. Acest lucru înseamnă practic că, prin crearea acestor metode, ascundeți detaliile interne ale clasei dvs. de alte componente. Alte componente pot comunica numai prin API.

în consecință, clasele sunt decuplate; acestea nu depind de fiecare, permițându-vă să vă dezvoltați izolat, ceea ce duce la evoluții mai rapide, deoarece membrii echipei pot crea diferite clase și componente în paralel. Pe lângă facilitarea întreținerii, deoarece componentele pot fi modificate, cu un impact mic asupra altor componente dependente.

concluzie

pentru a rezuma, în acest articol, am văzut că metodele mutator și accessors metode în java sunt metode care ne permit să citească și să scrie variabile de clasă. Scopul lor principal este să ne ajute să proiectăm clase care sunt bine încapsulate și decuplate unele de altele.

sper că veți găsi articolul util și vă mulțumesc foarte mult pentru citirea și susținerea acestui blog! Codificare fericit!