Konstanta je proměnná jehož hodnota se po přiřazení nemůže změnit. Jáva nemá vestavěnou podporu pro konstanty, ale proměnné modifikátory statický a finále lze použít k efektivnímu vytvoření jednoho.
Konstanty mohou ostatním usnadnit čtení a pochopení programu. Kromě toho je konstanta uložena do mezipaměti prostřednictvím JVM i vaší aplikace, takže použití konstanty může zlepšit výkon.
Statický modifikátor
To umožňuje použití proměnné bez předchozího vytvoření instance třída; statický člen třídy je přidružen k samotné třídě, spíše než k objektu. Všechny instance třídy sdílejí stejnou kopii proměnné.
To znamená, že ji může snadno použít jiná aplikace nebo main ().
Například třída myClass obsahuje statickou proměnnou days_in_week:
public class myClass {
statický int days_in_week = 7;
}
Protože tato proměnná je statický, lze ji použít kdekoli bez výslovného vytvoření objektu myClass:
public class myOtherClass {
static void main (String [] args) {
System.out.println (myClass.days_in_week);
}
}
Konečný modifikátor
Konečný modifikátor znamená, že hodnota proměnné se nemůže změnit. Jakmile je hodnota přiřazena, nelze ji znovu přiřadit.
Primitivní datové typy (tj. int, short, long, byte, char, float, double, boolean) lze pomocí konečného modifikátoru změnit na neměnné / neměnné.
Tyto modifikátory společně vytvářejí konstantní proměnnou.
statická konečná int DAYS_IN_WEEK = 7;
Jakmile jsme přidali znak DAYS_IN_WEEK, uvedli jsme ve všech čepicích finále modifikátor. Mezi programátory Java je dlouholetou praxí definovat konstantní proměnné ve všech čepicích a také oddělovat slova podtržítky.
Java toto formátování nevyžaduje, ale usnadňuje každému čtení kódu okamžitě identifikovat konstantu.
Potenciální problémy s konstantními proměnnými
Fungování konečného klíčového slova v Javě je tak, že ukazatel proměnné na hodnotu se nemůže změnit. Zopakujme to: je to ukazatel, který nemůže změnit umístění, na které ukazuje.
Neexistuje žádná záruka, že odkazovaný objekt zůstane stejný, pouze že proměnná bude vždy obsahovat odkaz na stejný objekt. Pokud je odkazovaný objekt proměnlivý (tj. Má pole, která lze změnit), pak může konstantní proměnná obsahovat jinou hodnotu, než jaká byla původně přiřazena.