Informazioni sull'utilizzo delle costanti in Java

Ci sono molti valori nel mondo reale che non cambieranno mai. Un quadrato avrà sempre quattro lati, PI con tre cifre decimali sarà sempre 3.142 e un giorno avrà sempre 24 ore. Questi valori rimangono costanti. Quando si scrive un programma ha senso rappresentarli allo stesso modo, come valori che non verranno modificati una volta assegnati a una variabile. Queste variabili sono note come costanti.

Dichiarare una variabile come costante

Nel dichiarare le variabili abbiamo mostrato che è facile assegnare un valore a una variabile int:

 int numberOfHoursInADay = 24; 

Sappiamo che questo valore non cambierà mai nel mondo reale, quindi ci assicuriamo che non sia presente nel programma. Questo viene fatto aggiungendo il modificatore di parola chiave

finale
:
 finale int NUMBER_OF_HOURS_IN_A_DAY = 24;

In aggiunta a

finale
parola chiave dovresti notare che il caso del nome della variabile è cambiato in maiuscolo secondo la convenzione standard di denominazione Java. Ciò rende molto più facile individuare quali variabili sono costanti nel codice.

Se ora proviamo a cambiare il valore di

NUMBER_OF_HOURS_IN_A_DAY
:
finale int NUMBER_OF_HOURS_IN_A_DAY = 24;

NUMBER_OF_HOURS_IN_A_DAY = 36;

otterremo il seguente errore dal compilatore:

impossibile assegnare un valore alla variabile finale NUMBER_OF_HOURS_IN_A_DAY

Lo stesso vale per qualsiasi altra variabile di tipo di dati primitivo. Per trasformarli in costanti basta aggiungere il

finale
parola chiave per la loro dichiarazione.

Dove dichiarare le costanti

Come per le variabili normali, si desidera limitare l'ambito delle costanti a dove vengono utilizzate. Se il valore della costante è necessario solo in un metodo, dichiaralo lì:

 public static int calcolaHoursInDays (int giorni)

 

 final int NUMBER_OF_HOURS_IN_A_DAY = 24;

 giorni di ritorno * NUMBER_OF_HOURS_IN_A_DAY;

 

Se è utilizzato da più di un metodo, dichiaralo all'inizio della definizione della classe:

classe pubblica AllAboutHours 

 int finale privato statico NUMBER_OF_HOURS_IN_A_DAY = 24;

 public int calcolaHoursInDays (int giorni)

 

 giorni di ritorno * NUMBER_OF_HOURS_IN_A_DAY;

 

 public int calcolaHoursInWeeks (int settimane)

 

 final int NUMBER_OF_DAYS_IN_A_WEEK = 7;

 settimane di ritorno * NUMBER_OF_DAYS_IN_A_WEEK * NUMBER_OF_HOURS_IN_A_DAY;

 


Nota come ho aggiunto anche i modificatori di parole chiave

privato
e
statico
alla dichiarazione variabile di
NUMBER_OF_HOURS_IN_A_DAY
. Ciò significa che la costante può essere utilizzata solo dalla sua classe (da qui il
privato
ambito) ma potresti farlo facilmente a
pubblico
costante se si desidera che altre classi possano accedervi. Il
statico
la parola chiave consente di condividere il valore della costante tra tutte le istanze di un oggetto. Poiché è lo stesso valore per ogni oggetto creato, deve avere solo un'istanza.

Utilizzo della parola chiave finale con oggetti

È molto importante rendersi conto che quando si tratta di oggetti, Java non supporta le costanti come ci si potrebbe aspettare. Se si assegna una variabile a un oggetto usando il

finale
parola chiave significa che la variabile conterrà sempre e solo il riferimento a quell'oggetto. Non può essere modificato per fare riferimento a un altro oggetto. Tuttavia, ciò non significa che il contenuto dell'oggetto non possa cambiare.

Una breve nota sulla parola chiave Const

Potresti aver notato nell'elenco delle parole riservate che esiste una parola chiave chiamata

const
. Questo non è usato con le costanti, infatti, non è usato affatto nel linguaggio Java.