Diferència clau: estàtica vs final a Java
Cada llenguatge de programació té una sintaxi específica. El programador ha de seguir aquestes sintaxis quan escriu programes. Les paraules clau dels llenguatges de programació tenen significats específics segons les tasques. Els proporciona el llenguatge de programació i no es poden utilitzar per a variables, mètodes, classes, etc. definits per l'usuari. L'estàtica i la final són dues paraules clau en Java. Aquest article analitza la diferència entre estàtica i final a Java. La diferència clau entre static i final a Java és que static s'utilitza per definir el membre de la classe que es pot utilitzar independentment de qualsevol objecte de la classe, mentre que final s'utilitza per declarar una variable constant o un mètode que no es pot substituir o una classe que no es pot heretar.
Què és estàtic a Java?
Una classe consta de membres de dades (atributs) i mètodes. Per cridar els mètodes, hauria d'haver un objecte d'aquesta classe específica. Quan un mètode es declara estàtic, no cal crear un objecte per cridar-lo. El mètode es pot cridar amb el nom de la classe. Consulteu el programa següent.
Figura 01: Programa Java amb variables estàtiques i mètode estàtic
Segons el programa anterior, la classe A conté una variable numèrica i un mètode de visualització. Tots dos són membres estàtics. Per tant, no és necessari crear un objecte per accedir a la variable numèrica i al mètode de visualització. El programador pot escriure directament el nom de la classe per imprimir el número i trucar a la visualització del mètode. Per tant, no cal crear una instancia d'un objecte. Si la variable numèrica i el mètode de visualització no són estàtics, hauria d'haver un objecte de tipus A.
Figura 02: Ús del bloc estàtic
El programa anterior conté el bloc estàtic i el mètode principal. El bloc estàtic es crida quan es carrega la classe. Per tant, la instrucció del bloc estàtic s'executa abans que la del bloc principal. Si hi ha molts blocs estàtics, s'executaran en seqüència.
Què és el final a Java?
Al programa, hi pot haver variables de diversos tipus. Si hi ha una variable com int x=1; més endavant al programa, aquest valor de variable es pot canviar a un altre valor. Una variable que es declara com a final i s'inicializa amb un valor no es pot canviar més endavant al programa.
Figura 03: programa amb la variable final i l'herència
Segons el programa anterior, x és una variable final. Se li assigna un valor 5. No es pot canviar cap altre valor perquè es declara com a definitiu. Java admet programació orientada a objectes (OOP). Un pilar de la POO és un polimorfisme. Un tipus de polimorfisme és anul·lador. La classe A té el mètode de visualització. La classe B amplia la classe A i té el seu propi mètode de visualització. Quan es crea un objecte de tipus B i es crida al mètode de visualització, s'imprimirà "B" com a sortida. El mètode de visualització de la classe A se substitueix pel mètode de visualització de la classe B.
Si el programador què ha d'evitar anul·lar un mètode, pot utilitzar la paraula clau final d'aquest mètode. Si el mètode de visualització de la classe A és definitiu, el mètode de visualització de B donarà un error perquè aquest mètode no es pot anul·lar.
Figura 04: paraula clau final del mètode
Un altre pilar de la POO és l'herència. Ajuda a reutilitzar el codi ja existent. La nova classe es pot estendre des de la classe existent i utilitzar els membres de dades i els mètodes de la classe existent. Si cal deixar d'heretar una classe, el programador pot utilitzar la paraula clau "final". Consulteu el programa següent.
Figura 05: paraula clau final a la classe
Segons el programa anterior, la classe A es declara definitiva. Quan la classe B amplia A, dóna un error perquè la classe A es declara definitiva. No pot ser heretat per altres classes.
Quina és la similitud entre l'estàtica i la final a Java?
Tant estàtica com final són paraules clau a Java
Quina diferència hi ha entre estàtic i final a Java?
estàtica vs final a Java |
|
La paraula clau estàtica indica que es pot accedir a una variable de membre, o mètode, sense requerir una instanciació de la classe a la qual pertany. | La paraula clau final indica una entitat que només es pot assignar una vegada. |
variables | |
Les variables estàtiques es poden reiniciar. | Les variables finals no es poden reiniciar. |
Mètodes | |
Es pot cridar amb altres mètodes estàtics i només accedir als membres estàtics de la classe. | Els mètodes finals no es poden substituir. |
Classe | |
L'objecte de classe estàtica no es pot crear. Només conté membres estàtics. | La classe final no pot ser heretada per altres classes. |
Bloqueig | |
La paraula clau estàtica es pot utilitzar en un bloc. | La paraula clau final no s'utilitza amb un bloc. |
Resum: estàtic vs final a Java
Aquest article parla de dues paraules clau a Java, com ara estàtica i final. La diferència entre static i final a Java és que static s'utilitza per definir el membre de la classe que es pot utilitzar independentment de qualsevol objecte de la classe, mentre que final s'utilitza per declarar una variable constant o un mètode que no es pot substituir o una classe que no ser heretat.