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 a seconda dei compiti. Sono forniti dal linguaggio di programmazione e non possono essere utilizzati per variabili, metodi, classi, ecc. definiti dall'utente. static e final sono due parole chiave in Java. Questo articolo discute la differenza tra statico e finale in Java. Il differenza fondamentale tra static e final in Java è quello static viene utilizzato per definire il membro della classe che può essere utilizzato indipendentemente da qualsiasi oggetto della classe mentre final viene utilizzato per dichiarare una variabile costante o un metodo che non può essere sovrascritto o una classe che non può essere ereditato.
Cos'è statico in Java?
Una classe è composta da membri 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 quel metodo. Il metodo può essere chiamato usando il nome della classe. Fare riferimento al programma sottostante.
Figura 01: Programma Java con variabili statiche e metodo statico
Secondo il programma sopra, la classe A contiene numero variabile e metodo di visualizzazione. Entrambi sono membri statici. Pertanto, non è necessario creare un oggetto per accedere alla variabile numero e al metodo di visualizzazione. Il programmatore può scrivere direttamente il nome della classe per stampare il numero e chiamare il display 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 sopra contiene il blocco statico e il metodo principale. Il blocco statico viene chiamato quando la classe viene caricata. Pertanto, l'istruzione nel blocco statico viene eseguita prima dell'istruzione nel blocco principale. Se sono presenti molti blocchi statici, verranno eseguiti in sequenza.
Che cos'è la finale in Java?
Nel programma possono essere presenti variabili di vario tipo. Se esiste una variabile come int x=1; più avanti nel programma, il valore della variabile può essere modificato in un 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 sopra, x è una variabile finale. Viene assegnato un valore 5. Non può essere modificato un altro valore perché è dichiarato finale. Java supporta la programmazione orientata agli oggetti (OOP). Un pilastro di OOP è un polimorfismo. Un tipo di polimorfismo è prevalente. 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 darà un errore perché quel metodo non può essere sovrascritto.
Figura 04: parola chiave finale nel Metodo
Un altro pilastro dell'OOP è l'ereditarietà. Aiuta a riutilizzare il codice già esistente. La nuova classe può estendersi dalla classe esistente e utilizzare i membri dati ei metodi della classe esistente. Se è necessario interrompere l'ereditarietà di una classe, il programmatore può utilizzare la parola chiave 'final'. Fare riferimento al programma sottostante.
Figura 05: parola chiave finale nella classe
Secondo il programma di cui sopra, la classe A è dichiarata finale. Quando la classe B estende A, dà un errore perché la classe A è dichiarata come finale. Non può essere ereditato da altre classi.
Qual è la somiglianza tra statico e finale in Java?
Sia static che final sono parole chiave in Java
Qual è la differenza tra statico e finale in Java?
statico vs finale in Java |
|
La parola chiave statica indica che è possibile accedere a una variabile membro, o metodo, senza richiedere un'istanza della classe a cui appartiene. | La parola chiave finale denota un'entità che può essere assegnata solo una volta. |
Variabili | |
Le variabili statiche possono essere reinizializzate. | Le variabili finali non possono essere reinizializzate. |
Metodi | |
Può essere chiamato da altri metodi statici e accedere solo ai membri statici della classe. | I metodi finali non possono essere ignorati. |
Class | |
Non è possibile creare l'oggetto della classe statica. Contiene solo membri statici. | La classe finale non può essere ereditata da altre classi. |
Blocca | |
La parola chiave static può essere utilizzata in un blocco. | La parola chiave finale non viene utilizzata con un blocco. |
Riepilogo – statico vs finale in Java
Questo articolo ha discusso di due parole chiave in Java come static e final. La differenza tra static e final in Java è che static viene utilizzato per definire il membro della classe che può essere utilizzato indipendentemente da qualsiasi oggetto della classe mentre final viene utilizzato per dichiarare una variabile costante o un metodo che non può essere sovrascritto o una classe che non può essere ereditato.