Differenza tra statico e finale in Java

Differenza chiave - statica vs finale in Java
 

Ogni linguaggio di programmazione ha una sintassi specifica. Il programmatore dovrebbe seguire queste sintassi durante la scrittura dei programmi. Le parole chiave dei linguaggi di programmazione hanno significati specifici in base ai compiti. Vengono forniti dal linguaggio di programmazione e non possono essere utilizzati per variabili, metodi, classi definiti dall'utente, ecc. Lo statico e il finale sono due parole chiave in Java. Questo articolo discute la differenza tra statico e finale in Java. Il differenza fondamentale tra statico e finale in Java è quello static è usato per definire il membro della classe che può essere usato indipendentemente da qualsiasi oggetto della classe mentre il finale è usato per dichiarare una variabile costante o un metodo che non può essere sovrascritto o una classe che non può essere ereditata.

CONTENUTO

1. Panoramica e differenza chiave
2. Cosa è statico in Java
3. Cosa è definitivo in Java
4. Somiglianze tra statico e finale in Java
5. Confronto fianco a fianco - statico vs finale in Java in forma tabulare
6. Sommario

Cosa è statico in Java?

Una classe è composta da membri di dati (attributi) e metodi. Per chiamare i metodi, dovrebbe esserci un oggetto di quella classe specifica. Quando un metodo viene dichiarato come statico, non è necessario creare un oggetto per chiamare tale metodo. Il metodo può essere chiamato usando il nome della classe. Fare riferimento al programma seguente.

Figura 01: programma Java con variabili statiche e metodo statico

Secondo il programma di cui sopra, la classe A contiene il numero variabile e il metodo di visualizzazione. Entrambi sono membri statici. Pertanto, non è necessario creare un oggetto per accedere alla variabile numerica e al metodo di visualizzazione. Il programmatore può scrivere direttamente il nome della classe per stampare il numero e richiamare la visualizzazione del metodo. Quindi, non è necessario creare un'istanza di un oggetto. Se la variabile numero e il metodo di visualizzazione non sono statici, dovrebbe esserci un oggetto di tipo A.

Figura 02: uso del blocco statico

Il programma precedente contiene il blocco statico e il metodo principale. Il blocco statico viene chiamato quando viene caricata la classe. Pertanto, l'istruzione nel blocco statico viene eseguita prima dell'istruzione nel blocco principale. Se ci sono molti blocchi statici, verranno eseguiti in sequenza.

Cosa è definitivo in Java?

Nel programma, ci possono essere variabili di vario tipo. Se c'è una variabile come int x = 1; più avanti nel programma, quel valore variabile può essere cambiato in qualche altro valore. Una variabile dichiarata come finale e inizializzata con un valore non può essere modificata successivamente nel programma.

Figura 03: programma con variabile finale ed ereditarietà

Secondo il programma di cui sopra, x è una variabile finale. Viene assegnato un valore 5. Non può essere modificato alcun altro valore perché è dichiarato come finale. Java supporta la programmazione orientata agli oggetti (OOP). Un pilastro di OOP è un polimorfismo. Un tipo di polimorfismo è dominante. La classe A ha il metodo di visualizzazione. La classe B estende la classe A e ha il proprio metodo di visualizzazione. Quando si crea un oggetto di tipo B e si chiama il metodo di visualizzazione, verrà stampato "B" come output. Il metodo di visualizzazione della classe A è sovrascritto dal metodo di visualizzazione della classe B.

Se il programmatore cosa evitare di sovrascrivere un metodo, allora può usare la parola chiave finale per quel metodo. Se il metodo di visualizzazione nella classe A è definitivo, il metodo di visualizzazione in B restituirà un errore poiché tale metodo non può essere sovrascritto.

Figura 04: parola chiave finale nel metodo

Un altro pilastro di OOP è l'ereditarietà. Aiuta a riutilizzare il codice già esistente. La nuova classe può estendersi dalla classe esistente e utilizzare i membri dei dati e i metodi della classe esistente. Se è necessario interrompere l'ereditazione di una classe, il programmatore può utilizzare la parola chiave "final". Fare riferimento al programma seguente.

Figura 05: parola chiave finale nella classe

Secondo il programma di cui sopra, la classe A è dichiarata definitiva. Quando la classe B estende A, dà un errore perché la classe A è dichiarata definitiva. Non può essere ereditato da altre classi.

Qual è la similarità tra statico e finale in Java?

  • Sia statico che finale sono parole chiave in Java.

Qual è la differenza tra statico e finale in Java?

statico contro finale in Java

La parola chiave statica indica che è possibile accedere a una variabile membro oa un metodo senza richiedere un'istanza della classe a cui appartiene. La parola chiave finale denota un'entità che può essere assegnata una sola volta.
 variabili
Le variabili statiche possono essere reinizializzate. Le variabili finali non possono essere reinizializzate.
metodi
Può essere chiamato da altri metodi statici e accede solo ai membri statici della classe. I metodi finali non possono essere sovrascritti.
Classe
L'oggetto della classe statica non può essere creato. Contiene solo membri statici. La classe finale non può essere ereditata da altre classi.
Bloccare
La parola chiave statica può essere utilizzata in un blocco. La parola chiave finale non viene utilizzata con un blocco.

Sommario - statico vs finale in Java

Questo articolo ha discusso due parole chiave in Java come statico e finale. La differenza tra static e final in Java è che static viene usato per definire il membro della classe che può essere usato indipendentemente da qualsiasi oggetto della classe mentre final viene usato per dichiarare una variabile costante o un metodo che non può essere sovrascritto o una classe che non può essere ereditato.

Riferimento:

1.Che cos'è la parola chiave statica in Java | Metodo statico e variabile statica, Telusko Learnings, 6 marzo 2015. Disponibile qui  
2.7.16 Come usare Blocco statico in Java Tutorial, Telusko Learnings, 30 aprile 2015. Disponibile qui
3.8.13 Come utilizzare la parola chiave finale in Java | Metodo, classe e variabile, Telusko Learnings, 26 febbraio 2015. Disponibile qui