Získejte a nastavte metodu v jazyce Java
Provoz
Metody getters a setters nebo metody přístupu umožňují přístup k vlastnostem objektu. Metoda get vrátí hodnotu vlastnosti objektu. Metoda get má návratový typ, který se vztahuje k přidruženému typu proměnné člena. Metody získání obvykle nezaznamenávají žádné parametry. Metoda sady má návratový typ "void" a zařadí přidruženou proměnnou člena parametr odpovídajícího typu.
Konvence
Metody přístupu jsou využívány externími objekty, a proto jsou deklarovány jako "veřejné" (externě viditelné). Přijímanou konvencí je pojmenovávat a nastavit metody pro přidruženou proměnnou člena (například "getName" a "setName", spojené s proměnnou "name") s prefixem "get" nebo "set". Ne všechny členské proměnné mohou mít přidružené přístupové metody. Tyto metody jsou psány pouze pro hodnoty, které musí být přístupné externě.
Účel
Omezení přístupu k členským proměnným objektu je součástí praxe známého jako "zapouzdření". Zapouzdření kompartmentuje součásti objektu, skrývá implementaci (vnitřní práce) objektu, který nemusí být viditelný zvnějšku, a chrání vnitřní údaje před úpravami bez povolení. Metody přístupu mohou provádět výpočty, ověřování nebo jiné akce, které by se zabránilo přímým zpřístupněním členských proměnných.
Výhody
Ochrana členských proměnných, která využívá přístupové metody, umožňuje programátorům snadno modifikovat interní kód bez změny způsobu, jakým jsou třídy používány jinými uživateli. Tím se zabrání nutnosti provádět změny kódu pomocí aplikace při změně třídy. Getři mohou provádět výpočty a akce potřebné k vytvoření hodnoty, minimalizující množství externího kódu potřebného k použití hodnoty. Setřiři mohou provést ověření a zabránit chybám způsobeným proměnnými členy, které určují neplatné hodnoty.
Úvahy
Přidání metod přístupu ke třídě by mělo být provedeno konzervativně. Pouze proměnné členů, které vyžadují externí přístup, musí mít přístupové metody. Vlastnosti, které je třeba modifikovat pouze pomocí interní operace, nepotřebují setry. Vlastnosti, které nemají externí význam, by neměly mít getry. Tato praxe minimalizuje expozici implementace objektu a chrání vlastnosti před úpravami, které by mohly způsobit chyby při provádění. Méně veřejné metody existují, tím snadněji je zachovat kód.