En un ejemplo sencillo de solicitar un tipo de dato al usuario por la consola se utiliza la clase Scanner. ( Dicen que su incorporación no es antigua, desde la Api 6).
Cuando se declara una instancia del tipo Scanner me chocaba.
Digamos que el autor del vídeo de los vídeo tuitoriales va declarando las variables en el código según las va necesitando.
Como no soy nuevo, me gusta agrupar las declaraciones al menos por un código más claro.
Así en medio del código veía algo como esto:
En Java se declaran los tipos de la siguiente forma:
int numeroentero;
Entonces en la línea de la declaración de la variable entrada como una instancia de Scanner.
Tenemos el tipo a la izquierda y ademas su declaración de instancia.
¿ Qué habría hecho yo ?. Pues buscar la forma de declarar el tipo como el resto de las demás variables y con el resto de estas.
Tendría esto:
Ahora bien. Al declararla con el resto de variables arriba del procedimiento principal me hago a la idea de que la voy a usar en otra parte del código.
¿ Y si solo la voy a usar en un lugar concreto nada más ?. Entonces puede cambiar la cosa y se podría declarar e instanciar a la vez.
Un código simple.
import java.util.Scanner;
public class PruebaDeClaseEntrada {
public static void main(String[] args) {
Scanner entrada;
String usuario;
int edad;
entrada = new Scanner(System.in);
System.out.println("Introduce tu nombre ");
usuario = entrada.nextLine(); // Para datos tipo cádena ( objeto )
System.out.println("Introduce tu edad ");
edad = entrada.nextInt(); // Para datos tipo entero
System.out.println("Hola " + usuario + " el año que viene tendras " + (edad + 1) + " años");
entrada.close(); // El objeto escaner debe cerrarse cuando ya no se necesite
}
}
public class PruebaDeClaseEntrada {
public static void main(String[] args) {
Scanner entrada;
String usuario;
int edad;
entrada = new Scanner(System.in);
System.out.println("Introduce tu nombre ");
usuario = entrada.nextLine(); // Para datos tipo cádena ( objeto )
System.out.println("Introduce tu edad ");
edad = entrada.nextInt(); // Para datos tipo entero
System.out.println("Hola " + usuario + " el año que viene tendras " + (edad + 1) + " años");
entrada.close(); // El objeto escaner debe cerrarse cuando ya no se necesite
}
}
Saludos