# Konstanty a magická čísla - Doposud jsme běžně používaly číselné nebo znakové (textové) konstanty přímo ve zdrojovém kódu - Tzv. literály - Ve většině případů se taková použití označují jako „magická čísla“ a jsou nevhodná ### Magická čísla - Magická se nezývají proto, že není jasné, odkud se vzaly - „Najednou je v programu číslo 2.58. Proč?“ - Nemusí se jednat o čísla, může se jednat i o znakové a textové, případně jiné nepojmenované konstanty - Velmi znesnadňují úpravu kódu - I u relativně jednoduchých programů - Pokud budu program chtít upravit, budu muset magické číslo přepsat na víceromístech ### Pojmenované konstanty místo magických čísel - Snahou by mělo být důsledně se zbavit magických čísel pomocí pojmenovaných (též symbolických) konstant - Konstanty mohou být lokální (deklarované uvnitř metody), ale naprostá většina je deklarována jako konstanta třídy (tj. uvnitř třídy, ale mimo metody) - Konstanta je odlišena od proměnné klíčovým slovem ```final``` - **Názvy konstant** jsou psány **velkými písmeny**, **oddělovač** slov ve víceslovných názvech je **podtržítko** ### Povolené nepojmenované konstanty - Stejně jako u každého pravidla i u magických čísel existují výjimky, v tomto případě číselné - Je odůvodnitelné použít malá celá čísla (např. -1, 0, 1, 2), pokud však nemají speciální význam - Např. test sudosti/lichosti čísel - ```if (cislo % 2 == 0)```