Bruke tilbehør og mutatorer i Java

click fraud protection

En av måtene vi kan håndheve datakapsling er gjennom bruk av aksessorer og mutatorer. Tilgangers og mutators rolle er å returnere og stille verdiene til et objekts tilstand. La oss lære hvordan du programmerer tilgangsgivere og mutatorer i Java. Som et eksempel bruker vi en Personklasse med staten og konstruktøren allerede definert:

Tilbehørsmetoder

en tilbehør metoden brukes til å returnere verdien av et privat felt. Det følger et navneplan som prefikserer ordet "get" til begynnelsen av metodenavnet. La oss for eksempel legge til tilgangsmetoder for fornavn, mellomnavn og etternavn:

Disse metodene returnerer alltid den samme datatypen som det tilsvarende private feltet (f.eks. Streng) og returnerer ganske enkelt verdien av det private feltet.

Vi kan nå få tilgang til verdiene deres gjennom metodene til et Person-objekt:

Mutatormetoder

En mutatormetode brukes til å angi en verdi av et privat felt. Det følger et navneplan som prefikserer ordet "sett" til begynnelsen av metodenavnet. La oss for eksempel legge til mutatorfelt for adresse og brukernavn:

instagram viewer

Disse metodene har ikke en returtype og godtar en parameter som er av samme datatype som det tilsvarende private feltet. Parameteren blir deretter brukt til å angi verdien på det private feltet.

Det er nå mulig å endre verdiene for adressen og brukernavnet i Person-objektet:

Hvorfor bruke tilbehør og mutatorer?

Det er lett å komme frem til at vi bare kan endre de private feltene i klassedefinisjonen for å være offentlige og oppnå de samme resultatene. Det er viktig å huske at vi ønsker å skjule dataene om objektet så mye som mulig. Det ekstra buffer levert av disse metodene lar oss:

  • Endre hvordan dataene håndteres bak kulissene.
  • Bruk validering på verdiene som feltene blir satt til.

La oss si at vi bestemmer oss for å endre hvordan vi lagrer mellomnavn. I stedet for bare en streng kan vi nå bruke en rekke strenger:

Implementeringen inne i objektet har endret seg, men omverdenen påvirkes ikke. Hvordan metodene kalles forblir nøyaktig den samme:

Eller la oss si at applikasjonen som bruker Person-objektet, bare kan godta brukernavn som har maksimalt ti tegn. Vi kan legge til validering i setUsername mutator for å sikre at brukernavnet er i samsvar med dette kravet:

Hvis brukernavnet som ble gitt til setUsername mutator, er lenger enn ti tegn, blir det automatisk avkortet.

instagram story viewer