viernes, agosto 27

PEF - 2501

Uso del BufferedReader:

Cuando estamos trabajando en un proyecto, programa, etc, necesitamo ingresar las variables que ocuparemos. La forma más fácil para probar que el programa esté bien estructurado, hecho y cohesionado es utilizando los constructores y sus métodos. Así, un constructor con parámetros lo llenamos con datos beta, y luego llamamos el constructor creando un objeto. Para finalizar, ocupamos el método para imprimir y verificamos que esté todo ok

Pero, podemos usar la clase BufferedReader, que nos permite una interacción total con el usuario, es decir, ya no somos nosotros (los programadores) quienes colocamos las variables, sino el usuario.

Un ejemplo es el siguiente:

 Como pueden ver, hay líneas de código que imprimen un mensaje al usuario pidiéndole que ingrese algo. La siguiente línea expresa el parseo de dicho dato, y, asignándole a una variable creada lo ingresado por teclado.

Ahora lo importante, ¿cómo mierda se usa?.

Primero, por ser un objeto del tipo BufferedReader que pertenece a una clase BufferedReader debemos importar su uso, esto se logra colocando en el principio, antes de declararla clase las siguientes líneas (cada una de ellas, es por sí sola llamando a la clase BufferedReader):

"import java.io.*;" -> Estoy llamando a TODA las clases del tipo IO.
"import java.io.BufferedReader;" -> Estoy llamando a la clase BufferedReader.

Luego, debemos colocar la siguiente cadena de texto en el public static void main.

"throws IOException"

Esto nos permitirá trabajar con el BR (BufferedReader), para que no nos produzca alguna excepción. Ojo, esto no significa que podemos capturar y modificarlo.

"public static void main(String [] arg) throws IOException"

Y ahora, para finalizar, crear un objeto BR para poder capturar todos los datos que queramos.

"BufferedReader br = new BufferedReader(new InputStreamReader(System.in));"

Si se fijan, es el mismo procedimiento para crear un objeto de una clase cualquiera, es decir:

"nombreClase nombreObjeto = new NombreClase();"

Blah blah, mucha palabrería, ¿y la acción?.

Para poder trabajar con la clase BR debemos guardar en algún sitio lo ingresado por teclado. ¿Cómo carajo logro eso?.

Declaramos variables del tipo de dato que queramos ingresar, es decir, si le pides al usuario que ingrese un número, este debe ser: byte, short, int, long, float o double.
¿Y si es texto?, String o char.

Ok, declaré una variable del tipo "int", que se llama "numero". ¿Cómo guardo en el la cadena de texto ingresada por teclado?. Debemos parsearlo, es decir, convertirla al tipo de dato con el que trabajaremos.

Aquí detallo las líneas de código correspondientes a los parseos.

De String a byte: "Byte.parseByte(br.readLine());"
De String a short: "Short.parseShort(br.readLine());"
De String a int: "Integer.parseInt(br.readLine());"
De String a long: "Long.parseLong(br.readLine());"
De String a float: "Float.parseFloat(br.readLine());"
De String a double: "Double.parseDouble(br.readLine());"
De String a char: "char resp=(char)System.in.read();
                            System.in.skip(1);"

Oye loco, te faltó de String a String :S.

Como la cadena de texto es texto, es decir, un String, sólo debemos decirle que lea lo ingresado por teclado, y lo guarde:

De String a String: "br.readLine();"

Entonces, ¿podrías explicar el código :P?.

"int a; // Declaro una variable que tiene por nombre a, del tipo entero (int).

System.out.print("Introduzca algun numero: "); // Se imprimirá en el programa dicho mensaje, pidiéndole al         //usuario que introduzca un valor numérico.
a = Integer.parseInt(br.readLine());" // El programa leerá la línea ("br.readLine()") y lo parseará al tipo "Int", y    // lo guardará en el tipo de dato "Integer" (Int) que tiene por nombre a.

¿Les ha quedado claro?, en caso contrario, puteénme y exijan que le explique con mayor claridad.

Les dejo un ejercicio:

Clase Nota:
Atributos: notaFinal: double
Métodos: Uno que imprima un mensaje en caso de reprobación, es decir, nota menor a 4.0, caso contrario, mensaje de felicitación.

Clase Alumno:
Atributos: nombre: String
                edad: int
                sexo: char
Métodos: Imprimir, que imprima por pantalla los datos del alumno, y su nota final.

Crea una clase Main, crear con BR 2 objeto del tipo Alumnos, con su respectiva nota final.

OBSERVACIÓN: Usar Herencia.

No hay comentarios: