En Java Existen varios Objetos que permiten Entrada y Salida de datos a través de la Consola (es decir teclado y pantalla).
System.out.print (clase de salida)
la Clase System.out contiene 2 flujos de salida, a saber: - print - println
La diferencia entre ambos sería que println da un “enter” al final de cada línea de código mostrado.
La sintaxis general de ambos es:
1. print(“mensaje a enviar”);
2. print(variable);
3. print(“mensaje a enviar “ + variable);
en el caso 1, solo se tiene que escribir el texto que deseamos enviar a la pantalla.
Por ejemplo:
System.out.print(“Hola mundo”);
En el caso 2, se muestra unicamente el contenido de una variable, supongamos que existe la variable x de tipo int que contiene un 60. Para enviar al monitor su contenido sería:
System.out.print(x);
Como sabemos en la pantalla de la computadora ser verá un 60.
En el caso 3, se hacen ambas cosas, es decir, se envia el mensaje y se muestra un contenido de variable. Por ejemplo suponga que se calculó el sueldo de una persona y se guardó en la variable double w, entonces la sintaxis sería:
System.out.print(“El sueldo a pagar es “ + w);
System.in (Clase de entrada)
La clase System.in podriamos decir que por si misma no puede funcionar y requiere de otra para dicho propósito: Scanner.
A diferencia de System.out.print que se puede usar “directo” en el caso de Scanner y System.in se requiere de un objeto intermediario. La sintaxis sería:
Scanner nombreObjeto = new Scanner(System.in);
Donde nombreObjeto puede ser cualquier identificador (o sea nombre) que usted desee darle.
Por ejemplo, yo decidí nombrar mi objeto con el identificador tepic. Por tanto mi sintaxis queda:
Scanner tepic = new Scanner(System.in);
Ahora tepic por ser un objeto de tipo Scanner (dirigido a la clase de entrada System.in) tiene métodos necesarios para la captura de datos. A saber:
- nextLine(); Sirve para capturar una cadena - nextInt(); Permite la captura de Enteros - nextFloat(); Captura valores decimales y los deposita en variables del mismo tipo. - nextDouble(); Igual que el anterior pero con mas decimales después del punto. - nextBoolean(); Captura un true o false
Ahora pasemos a un poco de código porque en ocaciones usar este flujo resulta un poco “abstracto” de entender.
Declaramos las variables:
int s; double w; String nom;
tambien suponga que declaramos un objeto Scanner para poder capturar los datos desde teclado:
Scanner tecno = new Scanner(System.in);
suponga que deseo hacer un código para capturar datos en ellas, bien, obviando la cabecera, los imports etc. el código sería algo como:
System.out.print(“Escriba el valor de W: “); w = tecno.nextDouble(); System.out.print(“Ahora Escriba el valor de S: “); s = tecno.nextInt(); System.out.print(“Por último escriba el valor de NOM: “); nom = tecno.nextLine();
Note usted que despues del prefijo next se usa una mayúscula.
Ahora un programa ejemplo completo para aquellos que aprenden mejor analizando código:
- NOTA IMPORTANTE -
El siguiente código no esta completamente orientado a objetos ya que se tendría que crear por lo menos 2 clases (una de datos y otra de programa), sin embargo el ejemplo trata unicamente de explicar el uso de flujos de E/S.
- FIN DE NOTA IMPORTANTE -
Se desea calcular el sueldo de un trabajador. Para ello se usa la fórmula:
sueldo = diasTrabajado * pagoDiario;
_______________________________________________________
import java.util.Scanner;
public class sueldoTrabajador {
public static void main(String args[]) {
double sueldo, pagoDiario;
int diasTrabajados;
Scanner capt = new Scanner(System.in);
System.out.print(“Cuantos días trabajo?:”);
diasTrabajados = capt.nextInt();
System.out.print(“Cuanto gana usted al día?: “);
pagoDiario = capt.nextDouble();
sueldo = diasTrabajados * pagoDiario;
System.out.println(“Usted ganará: “ + sueldo);
}
} ______________________________________________________