En konstant er en variabel hvis værdi ikke kan ændres, når den er tildelt. Java har ikke indbygget support til konstanter, men de variable modifikatorer statisk og endelige kan bruges til effektivt at oprette en.
Konstanter kan gøre dit program lettere at læse og forstå af andre. Derudover cacheres en konstant af JVM såvel som din applikation, så brug af en konstant kan forbedre ydeevnen.
Statisk ændrer
Dette gør det muligt at bruge en variabel uden først at oprette en forekomst af klasse; et statisk klassemedlem er knyttet til selve klassen snarere end et objekt. Alle klasseforekomster deler den samme kopi af variablen.
Dette betyder, at en anden applikation eller main () nemt kan bruge den.
For eksempel indeholder klasse myClass en statisk variabel days_in_week:
offentlig klasse myClass {
statisk int dage_in_week = 7;
}
Fordi denne variabel er statisk, kan det bruges andre steder uden eksplicit at oprette et myClass-objekt:
offentlig klasse myOtherClass {
statisk void main (streng [] args) {
System.out.println (myClass.days_in_week);
}
}
Endelig modifikator
Den endelige ændrer betyder, at variabelens værdi ikke kan ændres. Når værdien er tildelt, kan den ikke tildeles igen.
Primitive datatyper (dvs. int, kort, lang, byte, char, flyder, dobbelt, boolsk) kan gøres uforanderlig / uforanderlig ved hjælp af den endelige modifikator.
Sammen skaber disse modifikatorer en konstant variabel.
statisk endelig int DAYS_IN_WEEK = 7;
Bemærk, at vi erklærede DAYS_IN_WEEK i alle hætter, når vi tilføjede endelige modifier. Det er en langvarig praksis blandt Java-programmerere at definere konstante variabler i alle kasketter samt at adskille ord med understregninger.
Java kræver ikke denne formatering, men det gør det lettere for alle, der læser koden, med det samme identificere en konstant.
Potentielle problemer med konstante variabler
Den endelige nøgleord fungerer i Java er, at variabelens markør til værdien ikke kan ændres. Lad os gentage det: det er markøren, der ikke kan ændre det sted, det peger på.
Der er ingen garanti for, at det objekt, der refereres til, forbliver det samme, kun at variablen altid vil have en henvisning til det samme objekt. Hvis det refererede objekt er mutabelt (dvs. har felter, der kan ændres), kan den konstante variabel indeholde en anden værdi end den, der oprindeligt blev tildelt.