Manejo de atributos y variables en Java

LIBP-0020 (Libro de pautas)

Los atributos y variables en Java deben declararse y emplearse según estas recomendaciones para minimizar los errores y generar código más seguro y eficiente.

Pautas

TítuloCarácter
Nunca declarar como público un atributo de una claseObligatoria
Favorecer el uso de Protected en lugar de PrivateObligatoria
Minimizar el uso de atributos staticObligatoria
Usar final para variables y argumentos que no cambien de valorObligatoria
Hacer static los atributos final que se asocien a una constante en tiempo de compilacionObligatoria
Asegurar que los atributos estáticos tenga valores válidosObligatoria
Usar Variables nuevas y controlar el numero de las mismas Obligatoria
Tipo de las variables para uso monetarioObligatoria
No asignar las variables o parámetros a sí mismas ni hacer asignaciones nulasObligatoria

Nunca declarar como público un atributo de una clase

Los atributos deben declararse privados (private) excepto los que se pretenda que sean accesibles por herencia que deben ser protegidos (protected). Se debe evitar el uso de datos públicos. Siguiendo los principios de la programación orientada objetos, no debemos de dar el control a desarrolladores externos sobre la estructura interna de la clase.

Favorecer el uso de Protected en lugar de Private

A no ser que haya razones muy importantes para negar el uso de un atributo o un método en las subclases. Esto implica un mayor control sobre los valores, ya que los definidos como protected pueden ser accedidos desde clases externas.

Minimizar el uso de atributos static

Usar atributos static es similar al uso de variables globales dentro de otros lenguajes de programación. Hay que tener cuidado porque convierte a los métodos en más dependientes del contexto y menos reutilizables.

Usar final para variables y argumentos que no cambien de valor

Es interesante dejar claro que no van a cambiar de valor para evitar controlar estas variables.

Hacer static los atributos final que se asocien a una constante en tiempo de compilacion

Si un atributo final es asignado a una constante en tiempo de compilación, podría ser estática (static), lo que ahorra gastos en cada objeto en tiempo de ejecución.

Asegurar que los atributos estáticos tenga valores válidos

Incluso aunque aun no se haya creado instancia alguna, hay que asegurar el correcto funcionamiento de las partes estáticas no privadas y por ende, se deben inicializar.

Usar Variables nuevas y controlar el numero de las mismas

Cuando tengamos necesidad de una variable, no reutilizar las definidas que ya no se van a usar más dentro de nuestro código. Así mismo controlar que se usan las variables necesarias sin crear más de las debidas.

Tipo de las variables para uso monetario

No es recomendable usar variables de tipo float o double para realizar cálculos monetarios precisos. Esto es debido a que introducen pequeños márgenes de imprecisión que pueden producir errores en los cálculos. Es recomendable utilizar la API proporcionada por Java , java.math.BigDecimal, que permite realizar cálculos con punto flotante con la precisión requerida.

No asignar las variables o parámetros a sí mismas ni hacer asignaciones nulas

Este método contiene una asignación de una variable local a sí misma:

public void foo () {
    int x = 3;
    x = x;
  }

Tales asignaciones son inútiles y puede indicar un error de lógica o un error tipográfico.