Použití přístupových a mutátorů v Javě

Jeden ze způsobů, jak můžeme vynutit zapouzdření dat je pomocí přístupových a mutátorů. Role přístupových a mutátorů je vracet a nastavovat hodnoty stavu objektu. Naučme se, jak naprogramovat přístupové a mutátory Jáva. Jako příklad použijeme a Třída osob s již definovaným stavem a konstruktérem:

Metody přístupu

An přístupový metoda se používá k vrácení hodnoty soukromého pole. Následuje schéma pojmenování, které předponou slovo "get" na začátek názvu metody. Například přidáme metody přístupu pro křestní jméno, prostřední jména a příjmení:

Tyto metody vždy vracejí stejný datový typ jako jejich odpovídající soukromé pole (např. String) a pak jednoduše vracejí hodnotu tohoto soukromého pole.

Nyní můžeme přistupovat k jejich hodnotám pomocí metod objektu Person:

Mutátorové metody

Metoda mutátoru se používá k nastavení hodnoty soukromého pole. Následuje schéma pojmenování, které předponuje slovo „set“ na začátek názvu metody. Například přidáme pole mutátoru pro adresu a uživatelské jméno:

Tyto metody nemají návratový typ a akceptují parametr, který je stejný datový typ jako jejich odpovídající soukromé pole. Parametr se potom použije k nastavení hodnoty tohoto soukromého pole.

instagram viewer

Nyní je možné upravit hodnoty adresy a uživatelského jména uvnitř objektu Person:

Proč používat přístupové a mutátory?

Je snadné dojít k závěru, že bychom mohli jen změnit soukromá pole definice třídy tak, aby byla veřejná, a dosáhnout stejných výsledků. Je důležité si uvědomit, že chceme co nejvíce skrýt data objektu. Extra pufr poskytované těmito metodami nám umožňuje:

  • Změňte způsob zpracování dat za scénami.
  • Představte si ověření na hodnoty, ve kterých jsou pole nastavena.

Řekněme, že se rozhodneme změnit způsob ukládání středních jmen. Místo jediného řetězce můžeme nyní použít řadu řetězců:

Implementace uvnitř objektu se změnila, ale vnější svět není ovlivněn. Způsob, jakým se metody nazývají, zůstává úplně stejný:

Nebo řekněme, že aplikace používající objekt Osoba může přijímat pouze uživatelská jména, která mají maximálně deset znaků. Můžeme přidat ověření v mutátoru setUsername, abychom se ujistili, že uživatelské jméno splňuje tento požadavek:

Pokud je nyní uživatelské jméno předané mutátoru setUsername delší než deset znaků, bude automaticky zkráceno.