Es un
calificativo que se puede aplicar a variables, métodos o clases y quiere decir
que es invariable.
final class
Cuando una clase se califica como final, no puede ser extendida.
Tobos los miembros de una clase final pasan a ser finales.
final método
Cuando un método se califica como final, no puede ser redefinido si
la clase a la que pertenece fuera extendida por otra clase.
La ventaja que aporta el calificativo final es que impide el polimorfismo
pues al no poder ser redefinidos los métodos, nunca habrá sorpresas en tiempo
de ejecución.
final variable
de clase
La variable se convierte en constante. Debe ser inicializada o bien junto a
la propia definición, o en la zona static de inicialización de variables.
final variable
de objeto
La variable se convierte en constante. Debe ser inicializada o bien junto a
la propia definición, o bien en todos y cada uno de los constructores de la
clase.
final
argumento formal de un método
El argumento se convierte en constante, dentro del método; es decir, su
valor no puede ser modificado.
final variable
local (o automática)
La variable se convierte en constante; es decir, su valor no puede
modificarse.
La identificación
de elementos finales puede proporcionar alguna mejora en tiempo de ejecución
pues se evitan los algoritmos de resolución de polimorfismo y el compilador
puede optimizar el código. No obstante, hay que advertir que estas mejoras
suelen ser muy modestas.
NOTA. Un error
frecuente consiste en declarar como final una variable que es referencia a un
objeto y luego pensar que el objeto no puede ser modificado. Final sólo
garantiza que la variable siempre referenciará el mismo objeto, independientemente
de que el objeto en sí evolucione.
Set<String>
diccionario(String idioma) { final Set<String> frases = new
HashSet<String>(); if
(idioma.equalsIgnoreCase("español")) { frases.add("hola"); frases.add("adiós"); } if
(idioma.equalsIgnoreCase("english")) { frases.add("hi"); frases.add("bye"); } // frases = ...;
provocaría un error de re-asignación return frases; } |
Temas relacionados