Opprett en Java-konstant variabel (statiske / endelige nøkkelord)

En konstant er en variabel hvis verdi ikke kan endres når den er tilordnet. Java har ikke innebygd støtte for konstanter, men de variable endringene statisk og endelig kan brukes til å effektivt lage en.

Konstanter kan gjøre programmet ditt lettere å lese og forstå av andre. I tillegg hurtigbufres en konstant av JVM så vel som applikasjonen din, så bruk av en konstant kan forbedre ytelsen.

Statisk modifikator

Dette gjør det mulig å bruke en variabel uten å opprette en forekomst av klasse; et statisk klassemedlem er assosiert med klassen selv, snarere enn et objekt. Alle klasseforekomster deler den samme kopien av variabelen.

Dette betyr at en annen applikasjon eller main () enkelt kan bruke den.

For eksempel inneholder klasse myClass en statisk variabel days_in_week:

myClass {
statisk int dager_in_uke = 7;
}

Fordi denne variabelen er statisk, kan den brukes andre steder uten eksplisitt å opprette et myClass-objekt:

offentlig klasse myOtherClass { 
static void main (String [] args) {
System.out.println (myClass.days_in_week);
}
}
instagram viewer

Endelig modifikator

Den endelige modifikatoren betyr at variabelen ikke kan endres. Når verdien er tildelt, kan den ikke tildeles på nytt.

Primitive datatyper (dvs. int, kort, lang, byte, røye, flyte, dobbelt, boolsk) kan gjøres uforanderlig / uforanderlig ved å bruke den endelige modifisereren.

Sammen skaper disse modifikatorene en konstant variabel.

statisk endelig int DAYS_IN_WEEK = 7;

Merk at vi erklærte DAYS_IN_WEEK i alle landskamper når vi la til endelig modifier. Det er en langvarig praksis blant Java-programmerere å definere konstante variabler i alle caps, samt å skille ord med understrekinger.

Java krever ikke denne formateringen, men det gjør det enklere for alle som leser koden umiddelbart identifiser en konstant.

Potensielle problemer med konstante variabler

Måten det endelige nøkkelordet fungerer i Java, er at variabelen peker til verdien ikke kan endres. La oss gjenta det: det er pekeren som ikke kan endre stedet den peker til.

Det er ingen garanti for at objektet som blir referert til vil forbli det samme, bare at variabelen alltid vil ha en referanse til det samme objektet. Hvis det refererte objektet er mutabelt (dvs. har felt som kan endres), kan den konstante variabelen inneholde en annen verdi enn det som opprinnelig ble tilordnet.