Juurdepääsute ja mutatorite kasutamine Java-s

Üks viisidest, kuidas jõustada andmete kapseldamine on läbi juurdepääsute ja mutantide kasutamise. Juurdepääsute ja muteerijate roll on naasta ja seada objekti oleku väärtused. Õppime, kuidas programmeerida sisselogijaid ja muteerijaid Java. Näitena kasutame a Isikuklass juba määratletud oleku ja ehitajaga:

Juurdepääsumeetodid

An ligipääs meetodit kasutatakse privaatse välja väärtuse tagastamiseks. Järgneb nimetamisskeem, mis eelistab sõna "saada" meetodi nime algusesse. Näiteks lisame eesnime, kesknime ja perekonnanime juurdepäsu meetodid:

Need meetodid tagastavad alati sama andmetüübi kui nende vastav privaatväli (nt String) ja tagastavad seejärel lihtsalt selle privaatvälja väärtuse.

Nüüd pääseme nende väärtustele juurde objekti Objekti meetodite abil:

Mutaatori meetodid

Privaatse välja väärtuse määramiseks kasutatakse mutatorimeetodit. Järgneb nimetamisskeem, mis eelistab sõna "komplekt" meetodi nime algusesse. Lisame näiteks aadressi ja kasutajanime mutatoriväljad:

Nendel meetoditel pole tagastamise tüüpi ja nad aktsepteerivad parameetrit, mis on sama andmetüüp kui nende vastav privaatväli. Seejärel kasutatakse parameetrit selle privaatse välja väärtuse seadmiseks.

instagram viewer

Objekti Isik sees oleva aadressi ja kasutajanime väärtusi on nüüd võimalik muuta:

Miks kasutada Accessoreid ja Mutatoreid?

Lihtne on jõuda järeldusele, et me võiksime lihtsalt muuta klassi määratluse privaatseid välju avalikuks ja saavutada samu tulemusi. Oluline on meeles pidada, et tahame objekti andmeid nii palju kui võimalik varjata. Lisad puhver nende meetodite abil võimaldab meil:

  • Andmete kulisside taga käitlemise muutmine.
  • Andke kinnitust väärtustele, millele väljad on seatud.

Oletame, et otsustame muuta kesknimede salvestamise viisi. Ainult ühe stringi asemel saame nüüd kasutada stringide massiivi:

Objekti sisemine teostus on muutunud, kuid välismaailma see ei mõjuta. Meetodite kutsumise viis jääb täpselt samaks:

Või ütleme, et objekti Isik kasutav rakendus saab aktsepteerida ainult maksimaalselt kümme tähemärki sisaldavaid kasutajanimesid. Võime lisada mutatorisse setUsername valideerimise, et veenduda, kas kasutajanimi vastab sellele nõudele:

Nüüd, kui mutatorile setUsername edastatud kasutajanimi on pikem kui kümme tähemärki, kärbitakse see automaatselt.