Java final: cómo utilizar el modificador para clases, métodos y variables
El modificador final se utiliza en Java para crear elementos que no pueden modificarse posteriormente. Puedes aplicar este modificador a clases, métodos y variables. Se utiliza sobre todo para evitar errores y usos indebidos intencionados dentro del código.
¿Qué es Java final?
La mayoría de lenguajes de programación ofrecen la posibilidad de modificar y ampliar el código existente en función de las necesidades. Aunque en principio esto también es posible en Java, a veces puede ser importante que un elemento se almacene como incambiable. El modificador correspondiente se denomina final en Java. Puede utilizarse para restringir el acceso a una clase, un método o una variable. Con él, el valor de una variable final ya no se puede cambiar, las extensiones para una clase final no son posibles y un método final no se puede suspender. De este modo se evita el uso indebido de la sección de código correspondiente.
- Rápido, seguro, flexible y escalable
- Certificado SSL/DDoS incluido
- Dominio y asesor personal incluidos
Clases finales
Si utilizas el modificador final de Java para una clase, ésta ya no podrá ser extendida. Este enfoque es muy común, ya que en muchos casos puede ser útil para evitar la derivación de una subclase. Esto se aplica en particular a los tipos de datos básicos como java.lang.Math
o java.lang.String
, que siempre se declaran como final. Incluso si quieres evitar que se deriven subclases de una clase principal por otras razones, el modificador final es la mejor manera. En el siguiente ejemplo, creamos una clase final y una segunda clase que teóricamente debería extenderla. La clase principal con el método main sigue en tercer lugar:
El resultado debe ser algo así:
Métodos finales
Si marcas un método como final, éste no podrá sobreescribirse. Entre otras cosas, esto evita que se le dé un significado diferente a un método de una clase subordinada. Si quieres evitar esto, crea un método final con el modificador final de Java. Por ejemplo, creamos una clase llamada “Emperador” que contiene un método final llamado “miTitulo”. La siguiente clase, “Rey”, extiende “Emperador” e intenta sobrescribir el método “miTitulo”. Para el método main, utilizamos “Principe” e intentamos acceder al método. El código se vería así:
Si aplicas este código, recibirás un mensaje de error:
Variables finales
El modificador final también se utiliza para crear variables de tal forma que su valor no pueda ser modificado posteriormente. Esto es muy importante si ciertas variables deben permanecer siempre contantes dentro del código. En el siguiente ejemplo, creamos una variable x que tiene el valor 5. A continuación, intentamos incorporar esta variable y asignarle un nuevo valor. El código se verá así:
Si ahora utilizamos el comando Java System.out.println
para mostrar el resultado, recibimos el siguiente mensaje de error:
Crear variables finales vacías
En Java, las variables deben inicializarse siempre. Sin embargo, si declaras una variable final vacía, puedes inicializarla con un constructor de clase. Se verá así en el código:
Si ejecutas este código, recibirás la siguiente sentencia como resultado: