Konstanty v Javě

  • Konstanty slouží obecně (nejen v Javě) pro pojmenování hodnot, které se někdy vícekrát, ale často i pouze jedenkrát v programu vyskytují.

  • Takové hodnoty se také označují jako "magic numbers", protože nemusí být na první pohled zřejmé, proč je to zrovna právě ta hodnota.

  • Proto si ji symbolicky (výstižně) pojmenujeme a pak používáme tento identifikátor místo přímé hodnoty.

  • Lze i později snadno na jednom místě změnit.

  • V Javě není speciální kategorie typů pro konstanty.

  • Pro účely pevných hodnot se užívají statické nemodifikovatelné "proměnné".

  • Příklad: private static final int NUM_MONTH = 12;

Note
Všimněte si nově modifikátoru final: zabrání omylem přepsání přiřazením nové hodnoty.

Doporučení

  • Konstantu je vhodné zavést i tehdy, když ji použijeme (zatím!) jen jednou.

  • Nemusí pochopitelně jít jen o čísla, ale libovolné typy — znaky, řetězce, data, ale i jiné objektové typy.

  • V ideálním případě nejsou v kódu programu mimo konstanty žádné jiné konkrétní hodnoty s výjimkou 0, 1, znak mezera, true / false, případně znaků.

  • Vše ostatní by mělo být definováno v konstantách.

  • Identifikátory by měly aspoň začínat velkým písmenem, nejlépe celé velkými písmeny.

Příklad konstanty

public class Person {
   private static final int MAX_PEOPLE_COUNT = 100;
   private String name;
   private int age;
   private static int peopleCount;
   public Person(String name, int age) {
      this.name = name;
      this.age = age; peopleCount++;
   }
   public static int howManyPeople() {
      return peopleCount;
   }
   public boolean maxPeopleCountReached() {
      return peopleCount >= MAX_PEOPLE_COUNT;
   }
}
Note
Také vysvětleno v Using Constants