You are on page 1of 62

ELEMENTOS DEL

LENGUAJE JAVA.
UT2. PARTE I
Unidad de Trabajo 2
Módulo: Programación
Ciclo: 1º D.A.W.

TIPOS DE DATOS, VARIABLES Y
OPERADORES
0
1.
2.
3.
4.
5.
6.
7.
8.

Clases, atributos, métodos y visibilidad.
Tipos de datos simples.
Comprobación de tipos.
Literales y constantes.
Variables.
Conversión de tipos.
Operadores
Sentencias de control
Entrada / Salida Básica

2

0. CLASES, ATRIBUTOS, MÉTODOS Y VISIBILIDAD.

Una clase está formada por:
 Atributos o variables miembro: los datos que contiene la clase. Puede tener
cualquier número de atributos o ninguno. Se declaran con un nombre y el
tipo de dato que van a almacenar.
 Métodos o funciones miembro: que definen su comportamiento, permiten
cambiar los valores de los atributos que forman la clase.

Cualquier método puede acceder a cualquier atributo de su clase. Pero para
poder acceder a atributos o métodos de otras clases se establecen los
modificadores de acceso:
 Public: cualquier otra clase puede acceder al miembro que lleve este
modificador.
 Package (por defecto): se puede acceder a los miembros que lleven este
modificador solo desde las clases que pertenezcan a su mismo paquete.
 Protected: Igual que la anterior, package, pero además de aquellas clases
que hereden de la que lleva este modificador.
3
 Private: solo pueden acceder a los miembros de su propia clase.

147.483.483.1. caracteres y booleanos.767 -2. ENTEROS Nombre Tamaño (bits) Rango byte short int 8 16 32 -128 a 127 -32.768 a 32.747 long 64 4 . números en coma flotante.147. TIPOS SIMPLES Java define cuatro grupos de datos simples: enteros.648 a 2.

1. que se podrán guardar números con decimales en ella y que se podrán realizar operaciones aritméticas con ella. TIPOS SIMPLES NÚMEROS EN COMA FLOTANTE Nombre Tamaño(bits) float 32 (entre 6 y 7 cifras decimales) double 64 (unas 15 cifras decimales) CARACTERES char Es un tipo de 16 bits. Las variables char se comportan como enteros. Java utiliza UNICODE para representar los caracteres. Cuando se escribe una declaración tal como float notas se esta indicando el espacio de memoria a reservar (4 bytes). 5 .

1. TIPOS SIMPLES boolean BOOLEANOS Sólo puede tomar dos valores: true o false. 6 . int año=1999. que incluye no solamente el conjunto ASCII sino también carateres específicos de la mayoría de los alfabetos. Así. podemos declarar una variable que contenga la letra ñ. El lenguaje Java utiliza el conjunto de caracteres Unicode.

 Los tipos de datos en asignaciones se comprueban en tiempo de compilación.2.  Cada tipo está definido estrictamente y es independiente del procesador. COMPROBACIÓN DE TIPOS  Java es un lenguaje fuertemente tipeado: Cada variable tiene un tipo.  No hay conversión automática de tipos si existe conflicto.  En todas las asignaciones (explícitas o por paso de parámetros) se comprueba la compatibilidad de tipos.  Cada expresión tiene un tipo.  7 .

3. LITERALES Y CONSTANTES De tipo entero     Base decimal: 45 Base hexadecimal: 0x3A/0X3A Base octal: 012 De tipo long    Base decimal: 1232333233323333L Base hexadecimal: 0x565FFFFFL 8 .

false   De tipo cadena: “hola mundo” De tipo carácter: ‘a’. tabulador) se representan con una secuencia de escape: 9 .35  Notación científica: 3.45e3 De tipo boolean: true. LITERALES Y CONSTANTES Coma flotante  Notación estándar: 45. ‘3’    Los caracteres que no se pueden teclear (salto párrafo.3.

final int MAX_DATOS=150. para distinguirlas de las que no son constantes. las constantes de un programa se suelen poner en letras mayúsculas.  Normalmente. se ha de inicializar y cualquier intento de modificarla en el curso de la ejecución del programa da lugar a un error en tiempo de compilación.  Ejemplos: final double PI=3. He aquí ejemplos de declaración de constantes.141592653589793.  Cuando se declara una variable de tipo final. LITERALES Y CONSTANTES Las constantes se declaran con la palabra final.3.  10 .

//Variable de clase 11 double radio. Ejemplo. Las variables de clase guardan datos que son los mismos para todos los objetos de una determinada clase. // Variable de instancia } . VARIABLES Java tiene tres tipos de variables:  De instancia  De clase  Locales Las variables de instancia se usan para guardar los atributos de un objeto particular. PI guarda el mismo valor para todos los objetos de la clase Circulo. una clase Círculo: PI es una variable de clase y radio es una variable de instancia. pero el radio de cada círculo puede ser diferente class Circulo{ static final double PI=3. Las variables locales se utilizan dentro de métodos o funciones y existen desde el momento de su definición hasta el final del bloque en el que se encuentran.4.1416.

b=0.4. double pi=3. boolean bNuevo=true. las variables locales se declaran en el momento en el que son necesarias.identificador[=valor]. String nombre="Angel".c.1416.0.b.5.]. int d=3.. . VARIABLES  Una variable se define especificando el tipo y el nombre: tipo identificador [=valor][. En Java.. int a. 12 int[] datos. char c=‘a’. Es una buena costumbre inicializar las variables en el momento en el que son declaradas. c=-2. int x=0. double a=3.4.

 Un array. pero las que le siguen llevan la letra inicial en mayúsculas. la primera empieza por minúscula.2. i.  Se han de poner nombres significativos a las variables.  Referencias: variables que indican la dirección de memoria dónde está almacenado un objeto.  El nombre de una clase. etc. double radioCirculo=3. generalmente formados por varias palabras combinadas. VARIABLES: PRIMITIVAS Y REFERENCIAS  Primitivas: variables de tipos simples. Se debe evitar en todos los casos nombres de variables cortos como xx.4. 13 .

Su ámbito comienza en el punto donde se declara la variable.  . Java obliga a inicializarlas por el programador. Son las declaradas dentro de un bloque de instrucciones delimitado por llaves { }. Son las variables que se declaran dentro de un método. Solo pueden ser usadas dentro de ese método. Son los atributos. Así se les llama a las variables declaradas dentro de la clase. VARIABLES: ÁMBITO Según donde este declarada una variable. puede ser:  Variable miembro de una clase.  Variables de bloque.4. pero fuera de cualquier método. Si el programador no las inicializa lo hace el compilador de Java.  Son compartidas por todos los métodos de esa clase y suelen declararse “private” para limitar su uso al interior de esa clase. Variables locales. Están disponibles desde su declaración hasta el final del bloque donde se 14 declaran.

4. VARIABLES: ÁMBITO 15 .

•  El tipo boolean es incompatible con el resto. b=(byte)a. • El tipo destino es más grande que el tipo origen (ensanchamiento). CONVERSIÓN DE TIPOS  Se realizará una conversión automática de tipos si: Los dos tipos son compatibles. //Esto es casting 16 . byte b.5.  La conversión de tipos distintos se hace por casting:  (tipo)variable int a.

la expresión completa se promociona a long. CONVERSIÓN DE TIPOS  Reglas de promoción de tipos automática en expresiones: En Java si se hacen operaciones matemáticas tipos de datos más pequeños que int (char. • Si un operando es de tipo long. el resultado es double. • Si alguno de los operandos es double.  17 .5. byte o short). • Si un operando es de tipo float. dichos valores serán promocionados a int antes de realizar las operaciones y el resultado será un int. la expresión completa se promociona a float.

double f = 5.5 126 78 123.5. char c = 'w'. CONVERSIÓN DE TIPOS EJEMPLO: int i = 7.5. Operación i+f i+c i + c – ‘0’ (i + c) – (2 * f / 5) Valor 12.8 Tipo double int int double 18 .

5. CONVERSIÓN DE TIPOS 19 .

1. Operadores incrementales 6.8.6.6.3. Operadores de asignación 6. Operadores relacionales 6. Operadores lógicos 6. Operador de concatenación de cadenas de caracteres. 6.5. Precedencia de los operadores 20 . OPERADORES 6. Operadores aritméticos 6. Operador condicional ?: 6.2.7.4.

6.  Los operandos deben ser de tipo numérico o de tipo char. son los signos negativo y positivo. int a=3.  La división de enteros produce un número entero. OPERADORES ARITMÉTICOS  Operadores  Operadores binarios: + * / % unarios: + y –. int b=2.1. Si queremos conservar el decimal hay que hacer un casting. double div=(double)a/b. 21 .

6.1. OPERADORES ARITMÉTICOS
EJEMPLOS:
int a = 10, b = 3;
double v1 = 12.5, v2 = 2.0;
char c1='P', c2='T';
Operación
a+b
a-b
a*b
a/b
a%b

Valor
13
7
30
3
1

Operación
v1+v2
v1-v2
v1*v2
v1/v2
v1%v2

Valor
14.5
10.5
25.0
6.25
0.5

Operación
c1
c1 + c2
c1 + c2 + 5
c1 + c2 + ‘5’

Valor
80
164
169
217

22

6.2. OPERADORES DE ASIGNACIÓN
 Permite

signo ‘=‘.

asignar un valor a una variable con el
variable= expresión

 El

tipo de la variable debe ser compatible con el
de la expresión asignada.
 Se puede crear una cadena de asignaciones para
dar el mismo valor a varias variables.
x=y=z=10;
23

6.2. OPERADORES DE ASIGNACIÓN

Otros operadores de asignación:

+=
-=
*=
/=
%=

i+=2 equivale a i=i+2
x*=n-3 equivale a
x=x*(n-3)

24

ambos decrementan la variable v Pero: j=i++. OPERADORES INCREMENTALES Operador de incremento: ++  Operador de decremento: .o . ambas incrementan la variable v i. j=i. i++. 25 .-i. Pueden utilizarse precediendo o siguiendo a la variable. equivale a j=i..6.3.  Ejemplos: i++ o ++i. equivale a i++. j=++i.

6.4.  Retornan como resultado un valor booleano.  Los operadores de desigualdad sólo se aplican a 26 tipos numéricos y char. OPERADORES RELACIONALES  Sirven para realizar comparaciones. == != > < >= <=  Los operadores == y != se pueden utilizar con cualquier tipo. .

4. b = 9. c = 7. Operación a==b a >=c b<c a != c Resultado false true false false 27 .6. OPERADORES RELACIONALES EJEMPLO: int a = 7.

PROUT2P0 Condiciones lógicas 28 . OPERADORES LÓGICOS Operador Descripción && AND en cortocircuito || OR en cortocircuito ! NOT (operador unario) & AND | OR  Con los operadores en cortocircuito no se evalúa el operando de la derecha cuando esté decidido el resultado de la expresión a partir del operando de la izquierda.5.6.

char c = ‘w’.6.5. float f = 5. Expresión (i >= 6) && (c == ‘w’) (i >= 6) || (c == 119) (f < 11) && (i > 100) (c != ‘p’) || ((i + f) <= 10) i + f <= 10 i >= 6 && c == ‘w’ c != ‘p’ || i + f <= 10 Resultado true true false true false true true 29 . OPERADORES LÓGICOS EJEMPLO: int i = 7.5.

z = 2.5. float f = 5.833333 0 -4 30 .RESUELVE int i = 5. j = 7. Expresión i += 5 f –= g j *= (i – 3) f /= 3 i %= (j . y = 2.75 14 1.2) x *= -2 * (y + z) / 3 Expresión equivalente i=i+5 f=f–g j = j * (i – 3) f=f/3 i = i % (j – 2) x = x * (-2 * (y + z) / 3) Valor final 10 8. g = -3. x = 2.25.

6.6. sino que devuelve el valor de la expresión que hay en res1 o res2 y se lo asigna a la variable que hay en expresión_lógica) 31 . el operador devuelve res1.7.  Ejemplo: System. no es que ejecuten las instrucciones que hay en res1 o res2.out. el operador devuelve res2. (Atención.6. en caso contrario.println(“El resultado es “ + resul + “unidades”). OPERADOR DE CONCATENACIÓN  El operador ‘+’ se utiliza también para concatenar cadenas de caracteres. OPERADOR CONDICIONAL ?:  Sintaxis: Expresión_lógica ? res1 : res2  Si la Expresión_lógica toma valor true.

6. OPERADOR CONDICIONAL ?: Ejemplo: int i = 10. j. a j se le asigna 100. c+=(a>0 && a<= 10) ? ++a : a/b. // c pasa a valer 25 32 . Esta expresión asigna a j el valor 100. b=2. c+=(a>0 && a<=10) ? a++ : a/b. c=3. //a pasa a valer 2. Como i vale 10. y c pasa a valer 5 int a=50.7. Su significado es: si el valor de i es menor que 0 asigna a j el valor 0. sino asigna a j el valor 100. c=20. j=(i < 0) ? 0 : 100. b=10. Otros ejemplos : int a=1.

8. los del mismo nivel tienen igual precedencia. 33 . después los de bits. PRECEDENCIA DE LOS OPERADORES La tabla muestra el nivel de precedencia de los operadores. Primeramente están los unarios. luego los aritméticos. Una expresión entre paréntesis siempre se evalúa primero y si están anidados se evalúan de más internos a más externos. posteriormente los relacionales. los de mas arriba tienen mayor precedencia.6. detrás vienen los booleanos y por último el operador de asignación. La regla de precedencia establece que los operadores de mayor nivel se ejecuten primero.

primero v+2-r+8 y luego la asignación Práctica para entregar: PROUT2P1 Pequeños programas 34 . PRECEDENCIA DE LOS OPERADORES  Todos los operadores binarios. ya que se debe calcular primeramente la expresión antes de asignar un resultado a una variable. v+1++. primero v+1 y luego el incremento.6. se evalúan de izquierda a derecha. excepto los de asignación.  Los operadores de asignación se evalúan de derecha a izquierda. v=v+2-r+8. Esto es lógico.8.

3. Sentencias de SALTO. 2. SENTENCIAS DE CONTROL 1. 35 . Sentencias de SELECCIÓN. Sentencias de ITERACIÓN.7.

• 36 . • switch: condicional múltiple.  Tipos:  if: condicional simple o doble.7.1. SENTENCIAS DE SELECCIÓN Permiten que el programa elija distintos caminos de ejecución en función del resultado de la evaluación de una expresión.

println("Su numero es mayor o igual que 3 " ) . 37 .SENTENCIAS DE SELECCIÓN: IF  Condicional simple: if (condición) { sentencia/s.println("Su numero es menor que 3 " ) . } else{ sentencia/s.out. } Ejemplo: condición será una Expresión_Boolena que devuelve true o false Si solo hay una sentencia no son necesarias las llaves{} if (num<3) System.out. }  Condicional doble: if (condición){ sentencia/s. else System.

} if (num == 0) {System.println("El numero es mayor a 9" ).out.} //Fin del If .println("CERO!!" ). } else { sentencia/s.} else if (num == 9) {System.out.out.} else if(num == 4) {System.SENTENCIAS DE SELECCIÓN: IF EJEMPLO.println("OCHO!!" ). } else if (condición) { sentencia/s.println("CUATRO!!" ). //Condiciones del IF  Condicionales anidadas: if (condición){ sentencia/s.println("DOS!!" ).println("CINCO!!" ).} 38 else {System.println("TRES!!" ). } else if (condición) { sentencia/s.out.out.println("NUEVE!!" ).println("SIETE!!" ).} else if (num == 6) {System.out.} else if(num == 1) {System.out.out.println("SEIS!" ).} else if (num == 3) {System.out.} else if(num == 2) {System.} else if(num == 8) {System.println("UNO!!" ).} else if (num == 5) {System.out.out.} else if (num == 7) {System.

if(k<30) System.println(“uno”).out. if (i==10) if (j<20) System. 39 .println(“dos”). else System.println(“cuatro”). else System.k. int i.out.out.out.println(“tres”). cada else va con el if más cercano.SENTENCIAS DE SELECCIÓN: IF  En una secuencia de if anidados.j.

abs(numero)<100) System. if (Math.println(“Número de más de 2 dígitos”). Debe visualizar el mayor de los dos.abs(numero)<10) System.println(“Número de 1 dígito”).out. si ambos números son iguales que visualice cualquiera de ellos.out. Escribe un programa (constará de una única clase main) que cree e inicialice dos números. Pruébalo cambiando el valor de inicialización del número.out. else System. else if (Math.SENTENCIAS DE SELECCIÓN: IF Ejemplo: int numero=61.println(“Número de 2 dígitos”).    Escribe un programa (constará de una única clase main) que cree e inicialice un numero entero a cualquier valor y lo visualice en pantalla si es par. 40 .

case valor2: break no es obligatorio: Si no se sentencia/s. admite char y byte.. 41 .. no long.SENTENCIAS DE SELECCIÓN: SWITCH  Sintaxis: switch (expresión o variable) { expresión o variable debe ser de case valor1: tipo entero.. //Este es el bloque de } instrucciones que se ejecuta en el caso de que la variable o expresión no coincida con ningún valor del case. Admite tipo [break].... double ni float.. [break]. [default: sentencia/s..] [break]... case valor3: sentencia/s.... String. sigue ejecutando bloques de [break].. pone.. . instrucciones hasta que encuentre un break. pero sentencia/s..

char. byte o String.  Si la expresión evaluada coincide con alguno de los valores. se ejecuta la sentencia o sentencias que aparecen a continuación.  Los valores con los que se compara la expresión en cada uno de los casos no puede ser un rango sino un valor concreto. 42 . hasta el final del switch o hasta encontrar una sentencia break. se ejecuta el bloque default.  Si la expresión no coincide con ninguno de los valores.SENTENCIAS DE SELECCIÓN: SWITCH  La expresión evaluada deber ser de tipo int.

43 . default: System.println (“No es una vocal”). case ‘a’: case ‘e’: case ‘i’: case ‘o’: case ‘u’: System.out.SENTENCIAS DE SELECCIÓN: SWITCH Ejemplo: Al no haber break. } Ejercicio: Programa que inicialice una variable asociada a un día de la semana. break. cualquier case se ejecutará la switch (c){ sentencia del case ‘u’.println (“Es una vocal”). en char c. del 1 al 7. y visualice el nombre del día en función de ese valor.out.

} 44 .[incremento]) { sentencia/s. }while (expresión_lógica). } do while: for: do{ sentencia/s.7. SENTENCIAS DE ITERACIÓN  Bucle  Bucle  Bucle while: while (expresión_lógica) { sentencia/s.2. [expresión_lógica]. for ([inicialización].

while(x < y) { System. La sentencia puede que no se ejecute ni una sola vez. public static void main(String [] argumentos) { int x = 0. } //cierra while } //cierra main } //cierra class Es un bucle o sentencia repetitiva con una condición al principio. Por convención: El carácter de llave de apertura { se coloca al final de la misma línea de la sentencia while.BUCLE WHILE public class Ejemplo1 { //Comienzo del flujo principal del programa.println("x es "+ x++). El carácter de llave de cierre }empieza una nueva línea y se alinea 45 con la palabra while. Realiza un programa que muestre los números pares que hay entre el 1 y el 20.out. int y = 10. System. Se ejecuta una sentencia mientras sea cierta una condición.out.println("Primer iterador"). .

println("x es " + x++).out.out. do { System. int y = 10. } while ( x < y ). a diferencia del while. . public static void main(String [] argumentos) { int x = 0.BUCLE DO-WHILE public class Ejemplo2 { //Comienzo del flujo principal del programa.println(“segundo iterador"). Se ejecuta una sentencia mientras sea cierta una condición. la 46 sentencia se ejecuta al menos una vez. System. En este caso. Realiza un programa que muestre los números pares que hay entre el 1 y el 20. } //cierra main } //cierra class Es un bucle o sentencia repetitiva con una condición al final.

BUCLE FOR public class Ejemplo3 { //Comienzo del flujo principal del programa. ejecuta la sentencia entre llaves y la sentencia de iteración para volver a verificar la expresión booleana o si es falsa. sale del bucle. i < 10 . ++i) { System. verifica la expresión booleana. public static void main(String [] argumentos) { for(int i = 0. si es cierta. Realiza un programa que muestre los números pares que hay entre el 1 y el 20. .out.println("i es "+ i). Es completamente legal en Java declarar una variable dentro de la cabecera de un 47 bucle for. De esta forma la variable (local) sólo tiene ámbito dentro del bucle. } //cierra for } //cierra main } //cierra class Es un bucle o sentencia repetitiva que ejecuta la sentencia de inicio.

en bucle. acumulador se incrementa en un valor variable Ejemplo: acumulador = acumulador + número_leído_pantalla 48 . es decir de operaciones sucesivas.CONTADOR Y ACUMULADOR Un contador es una variable que cuenta las veces que se ha realizado un proceso. en las que se tenga que ir almacenando el resultado que se vaya generando. contador se incrementa en un valor constate Ejemplo: contador=contador+1 Un acumulador es una variable que se encarga de almacenar el resultado de sumas o multiplicaciones sucesivas.

finalmente el valor del promedio. ... } Calcular el promedio de 10 números aleatorios entre 1 y 100 utilizando una variable acumulador y otra contador. int acuSuma=0.. 0. es decir.346442. 0. acuSuma+=contador.random()*100+1 y hacer casting. El programa debe mostrar los números que se van generando en cada iteración y.out..random() devuelve un número aleatorio entre 0. excluido 49 este último valor.println("El resultado de la suma es: "+ acuSuma).CONTADOR Y ACUMULADOR public class Contador { public static void main(String[] args) { int contador=1.2344234. puede devolver 0.98345. while (contador<=10){ contador++. Ayuda: La llamada a Math. Si queremos generar números entre 1 y 100 tenemos que usar: Math. } System.0 y 1.0.

v++) { If (v%2==0) continue. v<10. }  Return: Termina la ejecución de un método con el fin de volver a la instrucción que provocó la llamada a dicho método. Permite salir de la estructura de control y continuar con el código que hay después. }  Continue: Interrumpe la ejecución del bucle. for (v=1. Se desaconseja el uso de instrucciones break y continue. pero vuelve a evaluar la condición del mismo pudiendo volver a entrar en él. . ya que no 50 dan claridad al código.out. v<10.println (v). for (v=1. SENTENCIAS DE SALTO  Break. v++) { If (v%3==0) break.7.3. System.

Práctica para entregar: PROUT2P2 IF-SWITCH-BUCLES 51 .

Identifica los errores de los siguientes fragmentos de código: a) if (edad>=65).out.println(“edad mayor que 65)”.println(“edad mayor o igual que 65). }while (x<=10) 52 . b) int x=1.println(“hola”). x++.out.1. d) do{ System.j. else System.out. j+i. while (x<=10) total+=x.i++) k=i/j. for (i=0.EJERCICIOS 3.j=10. System. total.k. c) int i.

x++. x=1. System.out. } System.println(“El total es: “+ total).EJERCICIOS 3.out. 53 .println(y).2. total+=y. } } while (x<=10) { y=x*x. total=0.Indica cual es la salida del siguiente programa: public class Misterio{ public static void main( String args[]) { int y.

 La diferencia entre un método y otro.out. System.println(“1”).out.out. } .println().println(“hola”).8.println(“2”).print() o System. package Ejemplo.out. System. son las instrucciones que ya conocemos para salida de mensajes en la pantalla.*. ENTRADA/SALIDA BÁSICA SALIDA BÁSICA  System. import java. public class CMain { public static void main(String[] args) { System.out. es que print visualiza el siguiente mensaje en la misma línea y println el siguiente mensaje lo baja de línea.io. System.println(“3”).out.

int x = 10.  Por ejemplo cuando queremos mostrar un número de tipo float o double con un número determinado de decimales y no con los que por defecto muestra Java. 12. n.2f x = %d %n".out. System. El primer % indica que en esa posición se va a escribir un valor (dicho valor viene tras la .2f ".printf("n = %.SALIDA BÁSICA. Debemos usar System.25 x = 10 .printf("%7. La f indica que el número es de tipo float o double.printf. Salida: n = 1. x).). Ejemplo: Si queremos mostrar el número 12.25036. 7 indica el ancho total del numero. . Especificadores de formato  En ocasiones nos puede interesar tener una salida de datos en pantalla con formato. double n = 1.out.3698).out.2 indica el número de decimales.3698 de tipo double con dos decimales: System.

out. n. del ejemplo anterior la podemos escribir así: System. de la segunda. etc. x).printf("n = %1$. x). indicando que el valor a mostrar es el de la primera variable que aparece a continuación de las comillas. La instrucción System. 2$.SALIDA BÁSICA. 3$. 56 .printf("n = %. .2f x = %d %n". n. Especificadores de formato Cuando hay varias variables podemos indicar de cual de ellas es el valor a mostrar escribiendo 1$.2f x = %2$d %n"..out..

Entrada Básica  En Java.  Usando la clase Scanner.  La clase BufferedReader reserva memoria para guardar los datos que se insertan a través del teclado. Es decir. Dicha entrada de datos es el teclado.  Para usar estas dos clases hay que importar java. BufferedReader teclado =newBufferedReader(entrada). InputStreamReader y BufferedReader Para ello.*. el objeto teclado guarda la información en memoria.io. hay que usar estar dos instrucciones: InputStreamReader entrada=new InputStreamReader (System. hay muchas clases que permiten la entrada de datos a través del teclado. Es decir. .  El objeto entrada del ejemplo es de tipo InputStreamReader. Esta clase controla la entrada de datos a través del teclado.in indica la entrada estándar de datos. entrada recoge la información del teclado.  System.in). Vamos a ver dos formas de hacerlo:  Usando las clases InputStreamReader y BufferedReader.

parseShort(datoString). Si lo quieres pasar a float: float datoFloat=Float. concretamente.Entrada Básica Hay que usar ambos objetos para poder capturar los datos del teclado. El objeto de tipo BufferedReader tiene un método que es readLine().parseDouble(datoString).parseLong(datoString). Cuando queremos trabajar con números en lugar de con cadenas de caracteres tenemos que pasar el tipo String al tipo de dato con el que queremos trabajar: Si lo quieres pasar a int: int datoInt=Integer.readLine(). String dato=teclado.charAt(0). La llamada a dicho método sería: teclado. Cuando quieres trabajar con un único carácter: char a=teclado. 58 .parseFloat(datoString). de tomar todo lo que se inserte a través del teclado hasta pulsar enter.readline(). Si lo quieres pasar a double: double datoDouble=Double. Hay que usar el punto para representar un número decimal.parseInt(datoString). Dicho método se encarga.readline()  Este método lo que toma a través del teclado lo hace siempre en formato String. Si lo quieres pasar a short: short datoShort=Short. Si lo quieres pasar a long: long datoLong=Long.

out.readLine(). } } . public class Entrada { public static void main(String [] args) throws IOException { int numinsert=0. System.parseInt(lin). por ejemplo que no haya mem.ENTRADA BÁSICA (LECTURA DE UN ENTERO) import java. Ciertos métodos requieren que se controlen posibles errores que puedan producirse durante la ejecución del programa. lin = teclado. BufferedReader teclado =new BufferedReader(entrada).in). numinsert=Integer.out. System. Es el caso del método readline.println(“El numero insertado es “ +numinsert).io.*.print(“Inserte un número entero: "). RAM suficiente. String lin. InputStreamReader entrada=new InputStreamReader (System.

InputStreamReader entrada=new InputStreamReader (System.out.println("El numero insertado es " +numinsert). System.print("Inserte un número real:"). } } Ejercicio: Escribe un programa que pida dos números double y muestre su suma. System.*.out. . lin = teclado. BufferedReader teclado =new BufferedReader(entrada).parseFloat(lin).in).io.ENTRADA BÁSICA (LECTURA FLOAT) import java. String lin. public class Entrada { public static void main(String [] args) throws IOException { float numinsert=0. numinsert=Float.readLine().

in).  Esta clase tiene un método para cada tipo básico de Java. Ejercicio: Escribe un programa que pida el número que tiene asignado un empleado y su nombre.nextline(). Hay que averiguar cual es el método de la clase Scanner que toma caracteres hasta que se encuentre con el primer carácter en blanco. Posteriormente. Hay que importar java. se visualizará dicha información. solo se cogerá el primer nombre indicado. nombre=entrada. Si el empleado tiene un nombre compuesto.nextFloat(). numero=entrada. con lo cual si usamos esta clase no hace falta usar la conversión.Scanner  Ahora podemos usar los objetos de la clase Scanner que permiten la entrada de datos. como por ejemplo “Juan Carlos”.ENTRADA BÁSICA  Clase Scanner  Para usar la clase Scanner hay que ejecutar esta instrucción:  Scanner entrada = new Scanner (System. float numero.util. String nombre.io* y java. .

PROUT2P3 ENTRADA_SALIDA BÁSICA PROUT2P4 SENTENCIAS DE CONTROL PROUT1P5 SALIDAS PROGRAMAS .