viernes, 30 de septiembre de 2016

6-Introducir datos por teclado. Clase Scanner

Bienvenidos a un nuevo tutorial!!! En el tutorial de hoy vamos a ver algo que estamos viendo en tutoriales anteriores y en algunos programas que hemos creado. Se trata de la clase Scanner y es la que nos permite introducir datos por teclado y almacenarlos en variables.
Todavía no hemos llegado a ver cómo se utilizan las clases ni como se crean objetos de las clases pero en este tutorial vamos a explicar cómo utilizar la clase Scanner. A lo mejor os puede resultar algo lioso, pero es porque todavía no estáis familiarizados a instanciar objetos (crear objetos de una clase) ni a utilizarlos, así que no os preocupéis, lo vais a entender todo cuando veamos lo fundamental de la programación en Java que es la programación con objetos. Ahora sólo hay que entender cómo se utiliza esta clase para leer datos por teclado del usuario.


6.1-Documentación de la Clase Scanner.

Si queréis aprender a programar de verdad tenéis que utilizar la documentación de Java para ver cómo utilizar las clases, que métodos tienen y demás. Para ver la documentación en Java hay que acceder al siguiente enlace Documentación Java 8. Una vez allí para ver la documentación de la clase Scanner en la parte izquierda, donde dice All Classes buscamos y pinchamos sobre la clase Scanner.
Lo primero que podemos ver es que la clase Scanner se encuentra dentro del paquete java.util.

 Por eso, cuando queremos utilizar esta clase, debemos importar el paquete de la siguiente forma:

import java.util.Scanner;

Cuando importamos un paquete, éste debe ir al comienzo del código, en las primeras líneas.
Una vez importada la clase ya podemos utilizarla.
En la documentación, si vamos bajando la página, podremos ver todos los métodos que contiene esta clase, son muchísimos métodos pero, en este tutorial vamos a ver los básicos para leer por teclado tipos de datos primitivos (int, double, float...) pero, antes vamos a ver un poco por encima que es eso de los métodos y cómo accedemos a ellos.

6.2-¿Cómo acceder a los métodos de una clase?

Aunque todavía no hemos visto los objetos ni las clases vamos a explicarlo brevemente. Hemos dicho que para introducir datos por teclado teníamos que utilizar la clase Scanner pero, ¿Qué es una clase? Una clase es como un molde, por ejemplo un molde de galletas que da la forma a las galletas, todas las galletas que salgan de ese molde tendrán la misma forma. Pero una galleta puede ser de distinto sabor, llevar otros ingredientes que las otras galletas, es decir, del molde de la galleta (la clase) se pueden crear diferentes galletas (objetos de esa clase) que se diferenciarán unas de otras. La clase Scanner sería el molde, dicho molde viene con unos métodos ya definidos que podremos utilizar al crear el objeto de esa clase.
No os asustéis si no entendéis nada de lo explicado, que si clases, objetos... Lo vais a entender todo ahora cuando hagamos un ejemplo en código.
Para crear un objeto de una clase, se hace de la siguiente manera:

  • Nombre de la clase
  • Nombre que le damos al objeto de esa clase
  • Creación del objeto. Se pone '=' después del nombre del objeto y seguido new NombreClase();

/*Se crea el objeto miScanner de la clase Scanner. Se le pasa como parámetro System.in para indicarle

que se leerá por teclado
*/


        Scanner miScanner = new Scanner(System.in);

Así creamos el objeto miScanner de la clase Scanner y podremos acceder a los métodos de la clase Scanner, los métodos serán los que nos permitan realizar unas acciones u otras. Cada método permite realizar ciertas operaciones. Para acceder a los métodos de la clase se hace poniendo el nombre del objeto seguido de punto y eligiendo el método que nos haga falta. Hemos dicho que vamos a ver los métodos que nos permitan trabajar con los datos primitivos, es decir, leer por teclado números, cadenas, caracteres...
Vamos a ver todo esto con ejemplos de código, veréis cómo es mucho más fácil de lo que parece cuando lees el "tocho" que os he metido.

import java.util.Scanner;

class IntroducirPorTeclado {

    public static void main(String[] args) {

       Scanner miScanner = new Scanner(System.in);

       

        //Leer enteros

        

        //Creamos una variable de tipo int para almacenar lo introducido por

        //teclado en la variable. La variable debe ser del tipo de dato

        //que se pretenda leer. En caso contrario saldrá un error de ejecución.

        int numero;

        /*

        Ahora almacenamos el valor en la variable numero. Para ello utilizamos

        el método nextInt() que es el encargado de leer los tipos de datos

        entero.

        */

        System.out.println("Introduzca un número:");

        numero = miScanner.nextInt();

        System.out.println("El número es: " + numero);

        

        /*

        Para el resto de tipos de datos es exactamente igual. Con la diferencia

        de que debemos crear una variable del tipo de dato que se quiera guardar

        y utilizar el método adecuado. Por ejemplo en el ejemplo anterior no

        se podría utilizar miScanner.nextLine() porque este método es para leer

        String y no enteros. Se debería de hacer un casting.

        */

        

        //Veamos los demás ejemplos con diferentes tipos de datos.

        

        //Leer caracteres

        char caracter = 'a';//Empieza valiendo 'a'

        System.out.println("Introduzca un caracter: ");

        miScanner.next().charAt(0);//Lee el primer carácter introducido

        System.out.println(caracter);

        

        //Leer Double y float

        double numeroDec = 0D;

        float numeroFlo = 0F;

        System.out.println("Introduzca un número decimal: ");

        miScanner.nextDouble();

        System.out.println(numeroDec);

        

        System.out.println("Introduzca un número decimal: ");

        miScanner.nextFloat();

        System.out.println(numeroFlo);

        

        //Leer String

        String cadena = null;

        System.out.println("Introduzca una cadena: ");

        miScanner.nextLine();

        System.out.println(cadena);

        

        //Leer short

        short cor = 1;

        System.out.println("Introduzca un número short: ");

        miScanner.nextShort();

        System.out.println(cor);

        

        //Leer Long

        long lar = 0;

        System.out.println("Introduzca un número Long: ");

        miScanner.nextLong();

        System.out.println(lar);

        

        //Leer byte

        byte bit = 0;

        System.out.println("Introduzca un byte: ");

        miScanner.nextByte();

        System.out.println(bit);

        

    }

}
Tenemos que darnos cuenta de los métodos utilizados cada vez según el tipo de dato que hemos querido mostrar. Probad vosotros mismos qué es lo que pasa si nos pide introducir un número e introducimos una cadena o si introducimos otro tipo de dato del que nos piden según el método que esté en funcionamiento.
Hay muchos más métodos, así que investigad por vuestra cuenta en la documentación de Java y probar con otros métodos y demás.

Ejercicio 1
Hacer un programa que pida introducir una cadena y un número entero y después lo muestre por consola:
Solución:

Esto es todo para leer datos primitivos por teclado. En el siguiente tutorial veremos cómo trabajar con String y haremos usos de los métodos más importantes para trabajar con cadenas.

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...