AjLearning
AjLearning 0.1    





Introducción a Java - Alcance de variables

Curso Introducción a Java

    Anterior     Siguiente

Ha aparecido el concepto de bloque: comandos agrupados dentro de un par de llaves, que actúan como un solo comando. En cada ejemplo completo, hemos tenido que usar algún método como main, donde se han podido definir variables. Veamos que las variables también se pueden definir en los bloques, y cómo afecta esto a su visibilidad y uso.

En primer lugar, las variables definidas dentro de una rutina, son variables locales: nacen en su definición y mueren con la salida del método. Ni bien termina la ejecución de éste, la variable desaparece como tal. Cuando estudiemos clases y objetos, veremos que las variables pueden ser campos de éstos. Pero veamos ahora que podemos definir variables dentro de bloques. Por ejemplo:

public class Alcance { public static void main(String []args) { int a = 1; { // Bloque interno int b = 2; System.out.println("a es " + a); System.out.println("b es " + b); // No podemos redefinir una variable ya existente // int a = 3; ERROR } // La variable b ya no existe, podemos definirla int b = 3; System.out.println("a es " + a); System.out.println("b es " + b); } }

Su salida es:
a es 1 b es 2 a es 1 b es 3 En este sencillo ejemplo de consola, tenemos un único método main, y una variable entera a, inicializada en el valor 1. Luego, dentro de un bloque (notemos que un bloque se puede definir en cualquier momento con la llave que abre), definimos otra variable entera b. Esta variable sólo está disponible desde su definición, hasta el fin del bloque. Dentro del bloque, podemos acceder tanto a la variable b del mismo como a la variable a, que es externa al bloque, pero pertenece al mismo método. Luego del bloque, la variable b no existe, y podemos definirla nuevamente. En realidad, es otra variable nueva con el mismo nombre que la anterior. En cambio, la variable a externa al bloque no podemos redefinirla dentro del mismo, porque ya existe, y sigue estando disponible hasta el fin del método.

Programado por Angel J. Lopez www.ajlopez.com