Qual è la differenza tra statico e finale

La principale differenza tra statico e finale è che il static è usato per definire il membro della classe che può essere usato indipendentemente da qualsiasi oggetto della classe. In contrasto, final è usato per dichiarare una variabile costante o un metodo che non può essere sovrascritto o una classe che non può essere ereditata.

Statico e finale sono due parole chiave utilizzate in molti Orientamenti di oggetti che supportano linguaggi di programmazione come Java. Statico è usato con variabili e metodi per definire che appartiene alla classe, non all'oggetto. D'altra parte, final è usato per limitare all'utente l'accesso a una variabile, un metodo o una classe.

Aree chiave coperte

1. Cosa è statico
     - Definizione, Funzionalità
2. Che cosa è finale
     - Definizione, Funzionalità
3. Qual è la differenza tra statico e finale
     - Confronto tra le principali differenze

Parole chiave

Classe, variabile finale, variabile statica

Cos'è lo statico

Una classe è composta da variabili e metodi. Un oggetto viene creato da una classe; questo oggetto può essere usato per chiamare variabili e metodi. Quando un membro della classe viene dichiarato con statico, non è necessario creare un oggetto per chiamare metodi e variabili. Invece, il nome della classe può essere usato per chiamarlo. In altre parole, static è una parola chiave che appartiene alla classe piuttosto che all'oggetto.

Una variabile con la parola chiave static è chiamata variabile statica. Sono usati per indicare una proprietà comune di una collezione di oggetti. Queste variabili acquisiscono memoria al momento del caricamento della classe. Il vantaggio principale di una variabile statica è che aiuta a risparmiare memoria.

Figura 1: variabile statica

Nel programma sopra, c'è una variabile statica chiamata count. Nel costruttore, il conteggio viene incrementato di 1. Nel programma principale, vengono creati tre oggetti studente. La stampa del conteggio darà il risultato 3 in quanto vi sono tre oggetti. La variabile count è condivisa da tutti gli oggetti. Ogni volta che viene creato un oggetto, il conteggio viene incrementato di uno. Quando si visualizza il conteggio, dovrebbe essere scritto con il nome della classe (ad esempio - Student.count).

Un metodo con la parola chiave static è noto come metodo statico. Un esempio è il seguente.

Figura 2: metodo statico

Nel programma precedente, square è un metodo statico. Riceve un valore intero. Nel metodo principale, viene chiamato il metodo statico e viene passato il valore 4. La risposta dal metodo viene memorizzata nel risultato della variabile e viene infine stampata. Qui, il nome della classe viene utilizzato per accedere al metodo statico. (ad es. Calculate.square (4)). D'altra parte, i metodi statici non possono usare membri di dati non statici o chiamare direttamente metodi non statici. Valutare una variabile non statica con un metodo statico darà un errore in fase di compilazione.

Cos'è Finale

Finale è una parola chiave per limitare l'utente. Può essere utilizzato in variabili, metodi e classi. Un valore di una variabile finale non può essere modificato.

Figura 3: Variabile finale

Nel programma precedente, la variabile speedLimit viene dichiarata come finale. Pertanto, il suo valore non può essere modificato nel metodo di guida. Quindi, visualizza un errore. 

Figura 4: Classe A

Figura 5: Classe B

Nel programma precedente, la classe A ha un metodo finale chiamato display. La classe B estende A. Quindi, la classe B può ereditare tutte le variabili e i metodi della classe A. Anche la classe B ha il display del metodo. Poiché il metodo di visualizzazione di classe A è definitivo, non consente di sovrascrivere quel metodo in classe B.

Inoltre, una classe finale non può essere estesa come segue.

Figura 6: classe finale

Figura 7: Classe B

Poiché la classe A è definitiva, non può essere estesa o ereditata dalla classe B.

Differenza tra statico e finale

Definizione

Statico è una parola chiave che indica una variabile membro o un metodo a cui è possibile accedere senza richiedere un'istanza della classe a cui appartiene. Al contrario, final è una parola chiave che denota un'entità che può essere assegnata una sola volta. Quindi, questo spiega la differenza fondamentale tra statico e finale. 

variabili

Mentre le variabili statiche possono essere nuovamente inizializzate, le variabili finali non possono essere nuovamente inizializzate. Questa è una grande differenza tra statico e finale. 

metodi

I metodi statici possono essere richiamati da altri metodi statici e accedere solo ai membri statici della classe. D'altra parte, i metodi finali non possono essere sovrascritti. Questa è un'altra importante differenza tra statico e finale.

Classe

Non è possibile creare un oggetto da una classe statica; è composto solo da membri statici. Allo stesso modo, le classi finali non possono essere ereditate da altre classi.

Conclusione

Statico è usato per definire il membro della classe che può essere usato indipendentemente da qualsiasi oggetto della classe. Final è usato per dichiarare una variabile costante o un metodo che non può essere sovrascritto o una classe che non può essere ereditata. Questa è la principale differenza tra statico e finale.

Riferimento:

1. "Parola chiave statica in Java - Javatpoint". Www.javatpoint.com, disponibile qui.
2. "Parola chiave finale in Java - Javatpoint." Www.javatpoint.com, disponibile qui.