Konstanty v Javě
-
Konstanty slouží pro pojmenování určitých konkrétních hodnot se zvláštním významem v programu — tzv. magic numbers, kde nemusí být na první pohled zřejmé, proč je to zrovna právě ta hodnota.
-
Proto si ji rozumně pojmenujeme a pak používáme tento identifikátor místo přímé hodnoty.
-
Může jít i o objektové typy (např. konstanta typu
Person
).
Všeobecně platí: raději víc konstant než míň. |
Definice konstanty
-
Konstanty jsou vždy:
-
statické (
static
) — stačí nám jedna pro celou třídu -
neměnné (
final
) — je to konstanta, tudíž pomocífinal
zajistíme neměnnost
-
-
Konstanta může být:
-
privátní (dobře možné, když ji nechceme používat mimo třídu)
-
veřejná (nicméně asi obvyklejší, většinou má širší použití)
-
Příklad konstanty
-
Obvykle se nastavuje takto přímo přiřazením hodnoty
public static final int MAX_PEOPLE_COUNT = 100;
public boolean maxPeopleCountReached() {
return peopleCount >= MAX_PEOPLE_COUNT;
}
...
int constant = Person.MAX_PEOPLE_COUNT;
Klíčové slovo final
-
Slovo
final
způsobuje, že daná hodnota se v proměnné nemůže změnit. -
V objektové proměnné je uložena adresa (odkaz),
-
final
odkaz se tedy změnit nemůže, ale vnitřek (atributy) objektu ano -
Proto se může kombinovat s neměnnými (immutable) objekty, u nichž se vnitřek nemění
Příklad final
objektová proměnná
final int i = 1;
i = 2; // cannot be done
final Person p = new Person("Honza");
p = new Person("Pavel"); // cannot be done
p.setName("Pavel"); // dirty hack
Konstanty mají kromě slova final i slovo static protože ji chceme právě jednou.
|