Final vs Inmutable vs constante


CONSTANTE

public static final String VAR =  "var";

Esta es la declaración mas común de una constante.

  • Public, para que se pueda acceder desde cualquier clase, sin tener que instanciar dicha clase.
  • Static para que sea común a todas las clases que hereden de esta clase.
  • Final para expecificar que una vez que sea instanciada no puede modificarse.
  • El tipo de dato que va a representar.
  • La inicialización de la constante.

FINAL

private final String var;

Podemos declararla privada, sino queremos que sea para todo el mundo.
El indicado final, señala que una vez inicializada no se podra modificar.
NOTA: si es un tipo de dato privitivo (int, long, etc.) impedira que se modifique su valor.
Pero si es una referencia, solo impide que se modifique la referencia, no el valor de la referencia.
No se puede heredar si es final.

INMUTABLE

Inmutable significa que el valor no cambia.

private String var = "perro";
private String var = "gato";

Para generar la primera linea, se crea un objeto con el contenido “perro”, este contenido
no puede ser cambiado o modificado, ya que es inmutable. Se le pasa una referencia a la
variable declarada.
En la segunda linea se genera un objeto con el contenido “gato”, inmutable (no se puede cambiar),
y se le pasa una referencia al la variable var de este objeto.
Es decir el objeto var no ha cambiado su valor, ha cambiado la referencia.

Anuncios
Final vs Inmutable vs constante

2 comentarios en “Final vs Inmutable vs constante

  1. Luis dijo:

    Muy buen blog, lo acabo de descubrir, lastima que este un pelin dejado. Aun así, enhorabuena!

Los comentarios están cerrados.