FAV-ZCU/KIV PPA1/5. Konstanty a magická čísla.md

1.5 KiB

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)