Mostrando entradas con la etiqueta Programa. Mostrar todas las entradas
Mostrando entradas con la etiqueta Programa. Mostrar todas las entradas

El Alcance y la Vida de las Variables

martes, 25 de mayo de 2010 · 0 comentarios
Hasta ahora, todas la variables que hemos usado se declararon al principio del método main(). Sin embargo, Java permite que las variables se declaren dentro de cualquier bloque. El inicio de un bloque se marca con un carácter '{', y el fin del bloque, con el correspondiente carácter '}'. Un bloque puede contener otro bloque (o cualquier número de bloques) dentro de él, estos se denominan bloques anidados. Un bloque define el alcance; por lo tanto, cada vez que inicia un nuevo bloque, está creando un nuevo alcance. Un alcance determina cuáles objetos son visibles a otras partes de su programa. Así mismo, determina la vida de dichos objetos.

Casi todos los demás lenguajes de cómputo definen dos categorías generales de alcance: global y local. Aunque están soportadas por Java, no constituyen las mejores formas de categorizar los alcances de Java. Los alcances más importantes son los definidos por una clase y los definidos por un método.

El alcance definido por un método inicia con su llave de apertura. Sin embargo, si dicho método contiene parámetros, éstos se incluyen también dentro de su alcance.

Como regla general, las variables que están declaradas dentro de un alcance no son visibles (es decir, accesibles) a un código que esté definido fuera de este alcance. Por lo tanto, cuando declara una variable dentro del un alcance, localiza esa variable y la protege de acceso no autorizado, de modificación o de ambas posibilidades. Por supuesto, las reglas de alcance proporcionan la base del encapsulamiento.

Así mismo, los alcances pueden están anidados. Por ejemplo, cada vez crea un bloque de código, crea un nuevo alcance anidado. Cuando esto ocurre, el alcance exterior encierra al interior. Esto significa que los objetos declarados en el alcance exterior se volverán visibles al código dentro del alcance interno. Sin embargo, la situación contraria no aplica: los objetos declarados dentro del alcance interior no serán visibles fuera de él.

Para comprender el efecto del los alcances anidados, considere el siguiente programa:

// Demuestra el alcance del bloque.
class AlcanceDemo {
public static void main(String args[]) {
int x; // conocido a todo el código en main
x = 10;
if (x == 10) { //inicia nuevo alcance
int c = 20; //conocido sólo a este bloque
// x y c son conocidos aquí.
System.out.println(“ x y c : “+ x +” “+ c);
x= c * 2;
}
c = 100 // Error. A c no se le conoce aquí, está fuera de su alcance.
// x es aún conocido aquí.
System.out.pritnln(“x es “ + x);
}
}
Como lo indica el comentario, la variable x se declara al principio del alcance de main() y es accesible a todo el código posterior dentro de main(). Dentro del bloque if, está declarada c. Debido a que un bloque define un alcance, c sólo es visible dentro del código de su bloque. Por tal motivo, fuera de su bloque, la línea c = 100; hará que ocurra un error en tiempo de ejecución porque c no es visible fuera de su bloque. Dentro del bloque if, x puede usarse porque el código dentro del bloque (es decir, un alcance anidado) tiene acceso a variables declaradas por un alcance incluido.

Dentro de un bloque, las variables pueden declararse en cualquier punto; sin embargo, sólo son válidas después de ser declaradas. De manera que, si define una variable al inicio de un método, ésta estará disponible para todo el código dentro del método . Por el contrario, si declara un variable al final de un bloque, ésta carecerá de uso porque ningún código tendrá acceso a ella.

A este respecto, hay que recordar otro elemento: las variables se crean cuando se introduce su alcance y se destruye cuando se abandona su alcance. Esto significa que una variable no contendrá su valor una vez que se haya salido de sus alcance. Por lo tanto, las variables declaradas dentro de un bloque perderán su valor cuando se abandone el bloque. Así, la vida de una variable está confinada a su alcance.
[ Seguir leyendo ]

Uso de las clases envolventes en Java

jueves, 13 de mayo de 2010 · 0 comentarios
 Uso de las clases envolventes en Java

El código que sigue usa varios métodos estáticos y métodos de instancia en las clases envolventes. El programa mostrará el uso de las clases envolventes para Integer y Float.

/*Definición de la clase EnvolventesEjemplo comienza aquí*/
public class EnvolventesEjemplo {
/*El método main comienza aquí */
public static void main(String args[]) {
Integer i = new Integer(5);
String s = “250.47”;

System.out.println(“Valor de i es: “
+ i.toString());
System.out.println(“Valor de s es: “
+ Float.parseFloat(s));

Float f = Float.valueOf(s);
float primitivoFloat = f.floatValue();
int primitivoInt = f.intValue();

System.out.println(“Valor del primitivo float es: “
+ primitivoFloat);
System.out.println(“Valor del primitivo int es: “
+ primitivoInt);
}/*El método main termina aquí */
}/*Definición de la clase EnvolventesEjemplo termina aquí */

La salida del código anterior es la siguiente:

Valor de i es: 5
Valor de s es: 250.47
Valor del primitivo float es: 250.47
Valor del primitivo int es: 250

[ Seguir leyendo ]

Tipos de Datos Boolean

martes, 11 de mayo de 2010 · 0 comentarios
Tipo de Datos Boolean

El tipo boolean representa valores de verdadero/falso. Java define los valores verdadero y falso empleando las palabras reservadas true y false. Por lo tanto, una variable o expresión de tipo boolean será uno de estos dos valores.

He aquí un programa que demuestra el tipo boolean:

//Demuestra valores boolean.
Class BoolDemo {
public static void main(String args[]) {
boolean b;
b = false;
System.out.println(“b es “ + b);
b = true;
System.out.println(“b es “ +b);
//Un valor boolean puede controlar la instrucción if
if(b) System.out.println(“ Esto se ejecuta.”);
b = false;
if(b) System.out.println(“ Esto no se ejecuta.”);
// La salida de un operador relacional es un valor boolean
System.out.println(“10 > 9 es “ + (10 > 9));
}
}
La Salida generada por este programa se muestra aquí:

b es false
b es true
Esto se ejecuta
10 > 9 es true

Hay que observar aquí tres aspectos interesantes acerca de este programa. En primer lugar, como puede ver, cuando se da salida a un valor boolean con println() se despliega “true” o “false”. En segundo lugar, el valor de una variable boolean es suficiente, en sí misma, para controlar la instrucción if. No es necesario escribir una instrucción if como ésta:

if(b == true) …

En tercer lugar, la salida de un operador relacional , como <, es un valor boolean. Por eso la expresión 10 > 9 despliega el valor “true”. Más aún, el conjunto extra de paréntesis alrededor de 10 > 9 es necesario porque el operador + tiene una mayor precedencia que >.

[ Seguir leyendo ]
Entradas Antiguas data:homeMsg

CodigoByte

Codigo QR

Etiquetas

Blogumulus by Roy Tanck and Amanda Fazani

Twitter

Seguir codigobyte en Twitter

Twitter Actualizar

    sigueme en Twitter

    Participa

    Java Twitter

    ¿Cúal es la extensión usada para guardar los archivos fuente Java?

    Mangoos

    Mangoos
    http://mangoosbuscador.wordpress.com/

    Anunciantes

    Se escribe con...

    Se escribe con...