14 Ámbito de Variables en Java
14 Ámbito de Variables en Java
Definición de ámbito
El ámbito de una variable define su alcance de uso, o lo que es lo mismo, en que secciones
de código una variable estará disponible. Fuera de este ámbito, una variable no podrá ser
accedida (no existe).
Global
Local
Estático
Variables estáticas:
Las variables estáticas, o de clase, son aquellas que pertenecen a la propia clase donde han sido
declaradas, y dependiendo del modificador de visibilidad usado podrían ser sólo accedidas desde la
propia clase en la que han sido declaradas:
NOTA: Toda variable debe ser declarada en el ámbito más reducido posible. Cuando una variable es
declarada con un ámbito más extenso del necesario, es sólo cuestión de tiempo que usemos esa
variable de forma incorrecta, provocando confusión e invitándonos a introducir bug's (si es que el
ámbito incorrecto no es en sí mismo ya un bug...)
Recomendaciones:
Reducir la usabilidad
Cuando tenemos una variable que sólo debería ser leída, ¿por qué no declararla como de solo
lectura?:
Declarando una variable como final, nos aseguramos que sólo pueda ser instanciada una vez. Si
intentamos hacer lo siguiente, obtendremos un error de compilación:
Reducir la visibilidad
La visibilidad de una variable viene definida, como ya sabes, por el uso de los
modificadores public, protected, private, y en caso de omisión package-default. El uso de uno u otro
operador va a declarar para quién va a ser visible una variable (y para quién no).
Estos modificadores se usan para proteger las variables y los métodos de una clase esto de ser
accedidos sin garantías por parte de otras clases. Los modificadores de accesos son los siguientes:
public
private
protected
Modificador de acceso public
Este modificador no coloca ninguna restricción en las variables y métodos de una clase, es decir
cuando estos son declarados public, los objetos de cualquier clase pueden accederlos.
Se usa para proteger la información muy confidencial, esto quiere decir que con este modificador
de acceso private solo serán accedidos únicamente por la misma clase en la que están.
Este solo permite que las variables y métodos de una clase puedan ser accedidas por otras clases
que estén en el mismo paquete