In matematica e scienza, la costante è un termine che denota un certo valore come 'π' che è un nome pratico per il numero 3.14159. Java ha il suo tipo di costanti. Queste sono variabili che sotto (a) non appartengono a nessun oggetto e sub (b) non cambiano il loro valore una volta che sono state impostate. La parola statica nella dichiarazione delle variabili mostra che la variabile non appartiene a nessun oggetto. C'è una parola chiave simile che dice che il valore della variabile sarà impostato una sola volta e non cambierà. Questa è la parola chiave finale. Questa parola chiave non è limitata a variabili statiche, ma può essere utilizzata con variabili di istanza, variabili locali e anche con variabili che sono metodi parametrici. Dichiarando la variabile come finale, si mostra a tutti che la variabile durante l'esistenza avrà lo stesso valore. Ancora più importante, il compilatore rileverà ogni tentativo di modificare il valore di una variabile dichiarata e segnalarla come un errore. Per quanto riguarda la terminologia Java, la variabile che viene dichiarata come statica e finale è detta costante.
Il modificatore finale può essere utilizzato in più punti nel linguaggio di programmazione Java. Qui tratteremo il suo uso più comune. Il modificatore finale può essere applicato alla dichiarazione di una variabile locale, argomento di funzione e variabili membro non statiche o statiche. In questo contesto, il modificatore di variabile si converte in una costante. Il traduttore della lingua di traduzione controllerà se qualche codice sta tentando di modificare il valore e tali tentativi verranno contrassegnati come un errore. Ecco un esempio.
valore int finale = 17;
Le variabili membro statiche con questo modificatore sono usate come costanti globali; per esempio, nella variabile java.lang.Math, è indicato esattamente
public static final double PI = 3.14159265358979323846;
Possiamo applicare il modificatore finale alla dichiarazione di funzione. La funzione contrassegnata con la finale non può più essere annullata, ovvero la sua implementazione finale. I metodi astratti non possono essere dichiarati definitivi - il fatto che siano astratti significa che mancano di implementazione; certamente non può essere il loro stato finale. Ecco un esempio.
public final int meaningLife ()
ritorno 42;
Possiamo applicare il modificatore finale alla dichiarazione della classe. La classe contrassegnata con la finale non può più ereditare, ovvero la sua implementazione finale. Chiaramente, la classe astratta non può essere definitiva allo stesso tempo. Ecco un esempio
public final class Closed
// ...
Uno degli esempi di classe finiti è la classe java.lang.String - è finita quindi nessuno può ereditarlo e quindi ottenere l'accesso alle sue variabili membro.
Le variabili statiche non appartengono a particolari istanze di classe. Le variabili statiche appartengono alla classe stessa e nella memoria ci sono solo una posizione, indipendentemente dal numero di copie di quella classe che vengono create in memoria. Le variabili non statiche appartengono a esemplari di classe - ogni istanza della classe ha una propria copia di tali variabili. Le variabili statiche appartengono alla classe: la classe in memoria mantiene i valori di tali variabili; tutte le classi di esempio vedono quindi lo stesso contenuto in modo da poter considerare variabili statiche da condividere tra tutte le classi. Aggiornando la variabile value, il nuovo valore sarà automaticamente visibile a tutte le istanze di quella classe. Il filtro statico può essere applicato a qualsiasi elemento dichiarato legalmente all'interno di una classe. Nel caso delle variabili di appartenenza, la conseguenza è che tali variabili membro saranno memorizzate solo in un posto. Cosa succede se si tratta di un metodo? Dichiarando il metodo come statico, il messaggio è lo stesso: il metodo pertinente non appartiene alle classi di classi ma alla classe stessa. Di conseguenza, i metodi statici non riceveranno un riferimento nascosto all'oggetto sul quale sono chiamati sulla chiamata; nei metodi di riferimento statici questo non è disponibile. In effetti, invocare metodi statici sull'oggetto è altrettanto confuso dell'accesso a variabili membro statiche facendo riferimento a questo riferimento: in entrambi i casi, è meglio scrivere semplicemente il nome della classe, il punto e il nome del metodo chiamante.
Statico indica una variabile comune a tutti gli oggetti che istanziano una data classe mentre la finale definisce la costante.
Statico è un metodo che è lo stesso per ogni classe data oggetto - è anche chiamato membro della classe, ad es. questo è il metodo principale. Il metodo finale non può essere elaborato nella classe ereditata.
La finale non può essere espansa, cioè non consente sottoclassi. Statico non si applica alla classe.
Per dirla in modo semplice, l'ultima indica che il valore non può essere modificato (override). Il valore statico è impostato sul valore predefinito, ma può essere reinizializzato.