¿Cuál es la diferencia entre estática y final?

La principal diferencia entre estática y final es que la static se utiliza para definir el miembro de la clase que se puede usar independientemente de cualquier objeto de la clase. A diferencia de, final se utiliza para declarar una variable constante o un método que no se puede anular o una clase que no se puede heredar.

Static y final son dos palabras clave que se utilizan en muchos Orientación a objetos que admiten lenguajes de programación como Java. La estática se usa con variables y métodos para definir que pertenece a la clase, no al objeto. Por otro lado, final se usa para restringir al usuario el acceso a una variable, método o clase.

Áreas clave cubiertas

1. Lo que es estático
     - Definición, Funcionalidad
2. Que es final
     - Definición, Funcionalidad
3. ¿Cuál es la diferencia entre estática y final?
     - Comparación de diferencias clave

Términos clave

Clase, Variable Final, Variable Estática

Lo que es estático

Una clase consta de variables y métodos. Un objeto se crea a partir de una clase; Este objeto se puede utilizar para llamar a variables y métodos. Cuando un miembro de la clase se declara con estática, no es necesario crear un objeto para llamar a métodos y variables. En su lugar, el nombre de la clase se puede utilizar para llamarlo. En otras palabras, static es una palabra clave que pertenece a la clase en lugar de al objeto.

Una variable con la palabra clave estática se llama variable estática. Se utilizan para referirse a una propiedad común de una colección de objetos. Estas variables obtienen memoria a la hora de cargar la clase. La principal ventaja de una variable estática es que ayuda a ahorrar memoria..

Figura 1: Variable estática

En el programa anterior, hay una variable estática llamada cuenta. En el constructor, el conteo se incrementa en 1. En el programa principal, se crean tres objetos de estudiante. Imprimir el conteo dará el resultado 3 ya que hay tres objetos. La variable de conteo es compartida por todos los objetos. Cada vez que se crea un objeto, el conteo se incrementa en uno. Cuando se muestra el recuento, se debe escribir con el nombre de la clase (por ejemplo, Student.count).

Un método con la palabra clave estática se conoce como método estático. Un ejemplo es el siguiente.

Figura 2: Método estático

En el programa anterior, el cuadrado es un método estático. Recibe un valor entero. En el método principal, se llama al método estático y se pasa el valor 4. La respuesta del método se almacena en el resultado variable y finalmente se imprime. Aquí, el nombre de la clase se utiliza para acceder al método estático. (por ejemplo, Calculate.square (4)). Por otro lado, los métodos estáticos no pueden usar miembros de datos no estáticos o llamar a métodos no estáticos directamente. La evaluación de una variable no estática mediante un método estático dará un error de tiempo de compilación.

Que es final

Final es una palabra clave para restringir al usuario. Se puede utilizar en variables, métodos y clases. Un valor de una variable final no puede ser cambiado.

Figura 3: Variable final

En el programa anterior, la variable speedLimit se declara como final. Por lo tanto, su valor no se puede cambiar en el método de la unidad. Por lo tanto, muestra un error. 

Figura 4: Clase A

Figura 5: Clase B

En el programa anterior, la clase A tiene un método final llamado pantalla. La clase B se extiende A. Entonces, la clase B puede heredar todas las variables y métodos de la clase A. La clase B también tiene la visualización del método. Como el método de visualización de clase A es definitivo, no permite anular ese método en la clase B.

Por otra parte, una clase final no se puede ampliar de la siguiente manera.

Figura 6: clase final

Figura 7: Clase B

Como la clase A es definitiva, no puede ser extendida o heredada por la clase B.

Diferencia entre estática y final

Definición

Static es una palabra clave que denota una variable miembro o un método al que se puede acceder sin requerir una instanciación de la clase a la que pertenece. En contraste, final es una palabra clave que denota una entidad que solo se puede asignar una vez. Así, esto explica la diferencia fundamental entre estática y final.. 

Variables

Mientras que las variables estáticas se pueden inicializar nuevamente, las variables finales no se pueden inicializar nuevamente. Esta es una gran diferencia entre estática y final.. 

Métodos

Los métodos estáticos pueden ser llamados por otros métodos estáticos y solo acceden a los miembros estáticos de la clase. Por otro lado, los métodos finales no pueden ser anulados. Esta es otra diferencia importante entre estática y final..

Clase

No se puede crear un objeto a partir de una clase estática; solo consiste en miembros estáticos. Del mismo modo, las clases finales no pueden ser heredadas por otras clases.

Conclusión

Static se usa para definir el miembro de la clase que se puede usar independientemente de cualquier objeto de la clase. Final se utiliza para declarar una variable constante o un método que no se puede anular o una clase que no se puede heredar. Esta es la principal diferencia entre estática y final..

Referencia:

1. "Palabra clave estática en Java - Javatpoint". Www.javatpoint.com, disponible aquí.
2. "Palabra clave final en Java - Javatpoint". Www.javatpoint.com, disponible aquí.