Вы находитесь на странице: 1из 30

UNIVERSIDAD POLITCNICA DE CARTAGENA

FUNDAMENTOSDEPROGRAMACIN BOLETNDEPRCTICAS

PedroSnchezPalma CristinaVicenteChicote
readeLenguajesySistemasInformticos Dpto.TecnologasdelaInformacinylasComunicaciones ETSIT.ITTEspecialidadTelemtica

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

NDICE
Ttulo
Introduccin Cuestiones bsicas para manejar la entrada/salida Sesin 2 Tipos de datos (I) Sesin 3 Tipos de datos (II) Sesin 4 Estructuras de seleccin Sesin 5 Estructuras de repeticin Sesin 6 Estructuras Estticas de Datos: Arrays Sesin 7 Estructuras Estticas de Datos: Arrays (II) Sesin 8 Estructuras Estticas de Datos: Arrays (III) Sesin 9 Mtodos (I) Sesin 10 Mtodos (II) Sesin 11 Mtodos (III) Sesin 12 De los mtodos a la PBO Sesin 13 Clases e Interfaces Sesin 14 Aspectos bsicos de la Prog. Orientada a Objetos: la herencia Sesin 15 Aspectos Avanz. de la Prog. Orientada a Objetos: Constructores y visibilidad Sesin 16 Aspectos Avanz. de la P. OO (II): Composicin, Herencia, Interfaces y Patrones Sesin 17 Aspectos Bsicos del Manejo de Excepciones en Java Sesin 18 Manejo de Excepciones en Java (II) Sesin 19 Introduccin a Swing. Aplicacin a los Tanques (I) Sesin 20 Introduccin a Swing. Aplicacin a los Tanques (II) Sesin 21 Introduccin a las Estructuras Dinmicas de Datos: Aplicacin a los tanques Anexo I. Ayuda de la clase Teclado

Pgina
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 26 27

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Introduccin
El presente documento recoge los distintos boletines de prcticas que se desarrollan durante el curso acadmico para la titulacin de Ingeniero Tcnico de Telecomunicacin, especialidad Telemtica en su asignatura Fundamentos de Programacin, de segundo curso y con doce crditos asignados. Al final del curso el alumno habr abordado tanto los aspectos fundamentales de la programacin como otros ms avanzados que tradicionalmente quedaban postergados a cursos avanzados. Las caractersticas del lenguaje de programacin utilizado (Java), as como las posibilidades que se ofrecen en aspectos relacionados con las Telecomunicaciones, hacen que el aprendizaje de esta materia sea fundamental y sirva de soporte aplicado a gran parte de las asignaturas de cursos posteriores de la carrera. Cada sesin se corresponde normalmente con dos horas de prcticas en la mayora de los casos excepto en algunas que por su complejidad necesita de cuatro horas para su realizacin. El profesor indicar durante el curso la utilizacin real del tiempo para adaptarse adecuadamente al esfuerzo requerido en cada uno de los ejercicios. Se ha priorizado el buscar ejemplos sencillos tanto en enunciado como en la solucin de cara a enfocar como objetivo la puesta en prctica de los conceptos vistos en clase de teora. La entrada/salida desde Java no es trivial en parte porque este lenguaje da un tratamiento uniforme a todos los flujos de datos (tanto de entrada como de salida). Desde este punto de vista, la sencilla operacin de leer un nmero entero por teclado puede resultar compleja para un alumno recin iniciado en la programacin. Para facilitar esta tarea, se aporta una clase llamada Teclado (disponible en el Aula Virtual) para facilitar la entrada de cualquier dato primitivo Java. El detalle de funcionamiento de los mtodos implicados est documentado al final de este boletn. En la pgina siguiente se ofrece unos ejemplos sencillos de interaccin. Otra cuestin importante es que las sesiones estn organizadas para ir sincronizadas con el desarrollo de las clases de teora. En este sentido, los primeros ejercicios de programacin no involucran la creacin de objetos porque suelen ser conceptos abordados en la segunda mitad del primer semestre. La sesin 1 no figura en este documento porque se corresponde con la introduccin al entorno de programacin. Aunque el contenido de este documento ha sido revisado por los profesores de la asignatura y contrastado durante varios curso acadmicos, es indudable que en un futuro recoger las mejoras y comentarios que recibamos por parte de los alumnos, principales usuarios del mismo y de los que esperamos contribuyan a consolidarlo. Los Profesores de la asignatura. Cartagena, Septiembre de 2009.

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Cuestiones bsicas para manejar la entrada/salida


Para imprimir en la pantalla un mensaje fijo.

System.out.println(este es el mensaje); Para imprimir en la pantalla un mensaje que incorpora variables.

String nombre=Pepe; int edad = 15; System.out.println(Mi nombre es + nombre + y mi edad es + edad + aos); que imprimir: Mi nombre es Pepe y mi edad 15 aos. Para leer por teclado un valor entero (igual con double, float, ...). // Teclado.readDouble(), readFloat(), ....

int valor; valor= Teclado.readInt();

// ms detalle de la clase Teclado al final de este boletn. Detalle de la clase Math. // calcula el seno de 2.3 radianes. // guarda en v el seno de x. // el valor absoluto. // x elevado a 5. // la raz cuadrada de x.

double v = Math.sin(2.3); double v, x=4.555; v = Math.sin(x); v = Math.abs(x); v = Math.pow(x, 5); v = Math.sqrt(x);

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 2 Tipos de datos (I)


o Crear una carpeta en el directorio C:\Mis Documentos llamada Sesion02 o Crear en un nuevo proyecto denominado Sesion02.jpr dentro de la carpeta recin creada y guardarlo. o Copiar en la carpeta Sesion02 el fichero Teclado.java y aadirlo al proyecto. Ejercicio 1 o Aadir al proyecto un fichero Calculadora.java y escriba un mtodo main en el que: Se solicite al usuario que introduzca dos enteros por Teclado. Se calculen la suma, la resta, el producto y la divisin de los dos enteros introducidos. Se calculen el resto de la divisin entera (%) y el clculo del valor absoluto* del primer operador. Se muestren los resultados de todas las operaciones por pantalla.
(*) Nota: La clase Math proporciona un conjunto de mtodos matemticos interesantes (operaciones trigonomtricas, algebraicas, etc). Consulte la ayuda !!

o Sealar la clase calculadora como main, compilarla y ejecutarla en modo consola. Qu ocurre si el segundo operador un 0? Ejercicio 2 o Aadir al proyecto un fichero ConversorRadianes.java y escriba un mtodo main en el que: Se solicite al usuario que introduzca un valor double por Teclado (consulte qu mtodo de la clase Teclado emplear). Este valor representarn un ngulo medido en grados sexagesimales: Transforme este ngulo a radianes: ang_rad = ( * PI)/180 Observe que la clase Math proporciona el valor de la constante PI. Calcule el seno, coseno y tangente del ngulo transformado y muestre los resultados por pantalla. Ejercicio 3 o Aadir al proyecto un fichero Ecuacion.java y escriba un mtodo main en el que: Se solicite por Teclado al usuario tres enteros: a, b y c, que sern los coeficientes de la ecuacin de segundo grado: y = ax2 + bx + c Se calculen y se muestren por pantalla los valores de de x que resuelven la ecuacin.

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 3 Tipos de datos (II)


o Recuerde crear una carpeta nueva para el proyecto, copiar en ella el fichero Teclado.java y aadirlo al proyecto. Ejemplo 1 o Aadir al proyecto un fichero Tiro.java. Dentro de esta clase, escribir un mtodo main en el que: Se pida por Teclado la velocidad inicial (Vo) y el ngulo de salida () medido en grados. A partir de estos datos calcule y muestre por pantalla la posicin (x,y) y la velocidad (Vx, Vy) a los 10 segundos del lanzamiento.
y

Vx=Vo cos() Vy=Vo sen() g t x = Vo * t * cos() y = Vo t sen() g t2


x

Modifique el programa para que el usuario pueda introducir por Teclado el instante (t) en el que se quiere calcular la posicin y la velocidad del objeto lanzado. Ejemplo 2 o Aadir al proyecto un fichero Booleanos.java. Dentro de esta clase, escribir un mtodo main en el que: Se declaren e inicialicen 2 variables booleanas b1=true y b2=false. Se calculen y se muestren por pantalla los resultados de aplicar los operadores boolanos AND (&), OR (|), XOR (^) y NOT(!). Se muestre por pantalla el resultado de la siguiente operacin: (b2 or ((b1 and b2) and !b1)) xor (b2 or (!b1 and b2)) Ejemplo 3 o Aadir al proyecto un fichero Triangulos.java. Dentro de esta clase, escribir un mtodo main en el que: Se pida al usuario los valor de , , A y B, del tringulo mostrado en la figura (valores de ejemplo: =30, =100, A=3 y B=6) Deduzca las ecuaciones que permiten calcular los valores de y C, y mustrelos por pantalla (en el ejemplo: =50 y C=4.675).
h b2 B b1 A

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 4 Estructuras de seleccin


o Recuerde crear una carpeta nueva para el proyecto, copiar en ella el fichero Teclado.java y aadirlo al proyecto. Dispone en la carpeta de Fundamentos de Programacin de Telemtica sita en http://www.teleco.upct.es/docencia/material/t2/funprog/curso.../practicas/ las soluciones de las sesiones anteriores de manera que no parta de cero. Qu necesita que puede no haber visto an en clase? El control de bifurcaciones en la ejecucin de un programa mediante la sentencia if(condicion) else... int x = 88; if (x > 23 & x < 34) // que es cierto { cjto de sentencias para cuando se cumple la condicin... } else // el else es opcional { conjunto de sentencias por si no se cumple la condicin} // la siguiente sentencia que se har siempre
...

Ejemplo 1 o Modifique el programa Ecuacion.java (Sesin 2) de modo que si las races son complejas se muestre: La ecuacin tiene races complejas. Ejemplo 2 o Modifique el programa Calculadora.java (Sesin 2) de modo que las operaciones de divisin y mdulo slo se realicen si el segundo operando es distinto de cero. En caso contrario, se debe mostrar el mensaje Imposible dividir por cero. Ejemplo 3 o Modifique el programa Triangulo.java (sesin 3) de modo que se compruebe que los ngulos y introducidos por el usuario son positivos y que su suma es menor de 180. De no ser as, debe mostrarse el mensaje Imposible definir tringulo. o Aada el clculo del rea del tringulo y muestre su valor por pantalla. Ejemplo 4 o Modifique el programa Tiro.java (sesin 3) de modo que: - Si la velocidad es negativa se muestre el mensaje Velocidad vlida > 0 - Si el ngulo es negativo se muestre el mensaje ngulo vlido > 0 - Si el ngulo mayor de 80 muestre el mensaje HEY!: ngulo vlido < 80 - Se calcule el alcance mximo de tiro: valor de x cuando y = 0 en t0 Obtener el valor NO CERO de t que resuelve la ecuacin y = Vo t sen() g t2 = 0 t_max_alcance Sustituir ese valor de t en la ecuacin x = Vo t cos() = max_alcance - Se pida al usuario el instante de tiempo (positivo!) en el que calcular (x,y) y (Vx,Vy) de modo que si el instante que introduce es mayor que t_max_alcance se muestre el mensaje t < tiempo de alcance

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 5 Estructuras de repeticin


o Recuerde crear una carpeta nueva para el proyecto, copiar en ella el fichero Teclado.java y aadirlo al proyecto. o En de Telemtica http://www.teleco.upct.es/docencia/material/t2/funprog/curso.../practicas/ estn disponibles las soluciones de las sesiones anteriores de manera que no tendr que partir de cero. la carpeta de Fundamentos de Programacin

Ejemplo 1 o Modifique el programa Tiro.java (Sesin 3) para que se impriman por pantalla los valores x(t), y(t), Vx(t) e Vy(t), para los valores discretos de t = {1, 2, 3, t_final}, donde t_final es el instante de alcance mximo. Hgalo empleando: a) Un bucle FOR. b) Un bucle WHILE. c) Un bucle DOWHILE. d) Un bucle infinito (condicin de terminacin siempre true) que termine (sentencia break) cuando y(t) pase a ser negativo. Observacin: el segundo trmino del clculo de y tiene un error: donde dice *g*t*t debe decir 0.5*g*t*t porque se redondea a cero el un medio. Ejemplo 2 o Realice un nuevo programa que muestre por pantalla todos los nmeros divisibles por 11 existentes en el rango (1..N), donde N es un valor solicitado al usuario por teclado que se debe comprobar que es mayor o igual que 11. Hgalo empleando: a) Un bucle FOR. b) Un bucle WHILE. c) Un bucle DOWHILE. o Modifique el programa para que slo muestre los divisores PARES de 11.

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 6 Estructuras Estticas de Datos: Arrays


o Recuerde crear una carpeta nueva para el proyecto, copiar en ella el fichero Teclado.java y aadirlo al proyecto. o En de Telemtica http://www.teleco.upct.es/docencia/material/t2/funprog/curso.../practicas/ estn disponibles las soluciones de las sesiones anteriores de manera que no tendr que partir de cero. la carpeta de Fundamentos de Programacin

Ejemplo 1 o Modifique el programa Tiro.java para que se creen sendos arrays tablaX y tablaY (tablas de valores double) que almacenarn los valores x(t) e y(t) para t = {1, 2, 3, t_final}, donde t_final es el instante de alcance mximo. Una vez calculados los valores, mustrelos por pantalla con el siguiente formato (los datos empleados son slo un ejemplo): (x0, y0) = (3, 5) (x1, y1) = (6, 7) (x2, y2) = (9, 8) o Obtenga y muestre la altura mxima alcanzada en el disparo (hmax). o Ample el programa para que al final se imprima para cada punto del plano (almacenado en los arrays de antes) la distancia lineal a ese punto desde el origen (d).

Ejemplo 2 o Escriba un programa Serie.java en el que, dado un array Entrada de valores enteros, se calcule y muestre por pantalla otro array Salida de la misma longitud cuyos elementos se calculan como:
n-1

Salida[i] = Entrada[j]
j=i

donde n es el tamao de la tabla Entrada

Ejemplo: Entrada: Salida: {1,2,3,4,5} {15,14,12,9,5} 1 + 2 + 3 + 4 + 5 = 15 2 + 3 + 4 + 5 = 14 3 + 4 + 5 = 12 4+5=9 5=5

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 7 Estructuras Estticas de Datos: Arrays (II)


o Recuerde crear una carpeta nueva para el proyecto, copiar en ella el fichero Teclado.java y aadirlo al proyecto. o En de Telemtica http://www.teleco.upct.es/docencia/material/t2/funprog/curso.../practicas/ estn disponibles las soluciones de las sesiones anteriores de manera que no tendr que partir de cero. la carpeta de Fundamentos de Programacin

Ejemplo 1 o Escriba un programa Matriz.java que solicite al usuario por teclado el nmero de filas (n) y de columnas (m) que desea que tenga su matriz. A continuacin, solictele los n*m valores con los que deber rellenar la estructura. o Aada al programa anterior las sentencias necesarias para calcular el valor mximo, mnimo y medio de los elementos de la matriz. Ejemplo: n=3 m=3 El maximo es 9 El minimo es 1 La media es 5.0 Ejemplo 2 (Opcional) o Aada al programa anterior las sentencias necesarias para que: El usuario introduzca dos matrices de tamao n x m (matrices A y B) Se cree adems otra matriz de tamao n x m en la que se almacenar la suma de las dos matrices anteriores (matriz C = A+B) Se muestre por pantalla la matriz C Ejemplo: n=3 m=3 A= 1 4 7 10 10 10 2 5 8 10 10 10 3 6 9 10 10 10 B = 9 6 3 8 5 2 7 4 1 Matriz = 1 4 7 2 5 8 3 6 9

C=

10

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 8 Estructuras Estticas de Datos: Arrays (III)


o Recuerde crear una carpeta nueva para el proyecto, copiar en ella el fichero Teclado.java y aadirlo al proyecto.

Ejemplo 1 o Dado el programa Matriz.java de la sesin anterior en el que se permita al usuario introducir por Teclado una matriz Anxm, aada las lneas de cdigo necesarias para: Mostrar las diagonales de la matriz A si y slo si es cuadrada. Crear una nueva matriz At que sea la transpuesta de A y mostrarla por pantalla de forma bidimensional (utilice el carcter \t como tabulador). Se incluye el producto de ambas para usarse en el ejemplo 2. n=3 m=4 1 4 7 14 32 50 2 5 8 1 2 3 4 5 6 7 8 9

A=

3 6 9

At =

A*At =

32 50 77 122 122 194

Diagonal (A) = {1, 5, 9} Diagonal(A) = {3, 5, 7}

Ejemplo 2 (Opcional) Mostrar la diagonal de la matriz A en el caso de que no sea cuadrada. Calcular y mostrar el resultado de A(nxm) * At(mxn). Obsrvese que el resultado es una matriz simtrica y cuadrada de tamao nxn. n=3 m=4 1 5 9 2 6 10 3 7 11 4 8 12 1 2 3 4 5 6 7 8 9 10 11 12

A=

At =

30 70 110 A*A = 70 174 278 110 278 446


t

Diagonal (A) = {1, 6, 11}

11

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 9 Mtodos (I)


o Recuerde crear una carpeta nueva para el proyecto, copiar en ella el fichero Teclado.java y aadirlo al proyecto.

Ejemplo 1 Se pide que implemente una calculadora con las operaciones suma, resta, multiplicacin, divisin, potencia, valor absoluto y mdulo(%). Debe considerar un mtodo para cada una de las operaciones. Debe considerar valores double en todos los casos excepto en la potencia en la que el exponente debe ser int. Desde main debe hacer todas las llamadas para demostrar el uso de dichos mtodos. Es decir, los argumentos pueden estar inicializados en la misma declaracin.

Ejemplo 2 Ample el ejemplo anterior de manera que: Se incluya un mtodo que muestre el mensaje correspondiente y lea un valor double que retorne a quien lo llam. Se incluya en main el cdigo necesario para que aparezca un men que solicite el tipo de operacin (utilice una sentencia switch) y despus lea los valores para el clculo (fjese que en las operaciones mdulo y valor absoluto slo se lee un valor). El programa debe estar funcionando hasta que el usuario introduzca la opcin terminar ejecucin.

12

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 10 Mtodos (II)


o Recuerde crear una carpeta nueva para el proyecto, copiar en ella el fichero Teclado.java y aadirlo al proyecto. Ejemplo 1: Se pide que implemente una clase Matriz para modelar el manejo de matrices de enteros con los siguientes mtodos estticos: crearMatriz (filas, columnas) Si filas y columnas son positivos, crea y devuelve una matriz de n filas y m columnas rellena de ceros. En caso contrario devuelve null. crearMatriz (n) Si n es positivo crea y devuelve una matriz cuadrada de tamao nxn rellena de ceros. En caso contrario devuelve null. Este mtodo debe hacer uso del mtodo anterior. crearMatriz (filas,columnas,array de valores) Si filas y columnas son positivos y el array de valores contiene filas*columnas valores, crea y devuelve una matriz de n filas y m columnas rellena con los valores pasados en el array. En caso contrario devuelve null. El array de valores es unidimensional. getFilas (matriz) Devuelve el nmero de filas de la matriz -1 si la matriz es nula. getColumnas (matriz) Devuelve el nmero de columnas de la matriz -1 si la matriz es nula. obtenerTranspuesta (matriz) Devuelve la matriz transpuesta o null si el argumento es una matriz nula. sumarMatrices (matriz, matriz) Devuelve la suma de las matrices o null si no tienen el mismo tamao o alguna de ellas es nula. multiplicarMatrices (matriz, matriz) Devuelve el producto de las matrices o null si los tamaos de ambas no son compatibles o alguna de ellas es nula. mostrarMatriz (matriz) Muestra la matriz tabulada por pantalla o un mensaje si es nula. Cree un mtodo main dentro de esta clase que compruebe el correcto funcionamiento de todos los mtodos anteriores.

13

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 11 Mtodos (III)


o Recuerde crear una carpeta nueva para el proyecto, copiar en ella el fichero Teclado.java y aadirlo al proyecto. Ejemplo 1: Se pide que implemente una clase Combinatoria que permita calcular los coeficientes binomiales (tringulo de Tartaglia) haciendo uso de las dos definiciones que se adjuntan a continuacin. Tringulo de Tartaglia (tambin llamado tringulo de Pascal) 1 11 121 1331 14641
Obsrvese que cada coeficiente (a partir de la fila 2), puede obtenerse tambin como la suma de los dos coeficientes que tiene encima

(0 0) (1 0) (1 1) (2 0) (2 1) (2 2) (3 0) (3 1) (3 2) (3 3) (4 0) (4 1) (4 2) (4 3) (4 4)
escribimos (a b) para representar a sobre b

Definicin 1: Haciendo uso de la definicin de la funcin factorial, n n! k n, = k k!(n k )! Definicin 2: Haciendo uso de la identidad de Blaise Pascal (1623-1662) n n = =1 0 n n n 1 n 1 k n 1, = k k + k 1 Casos base

Definicin recursiva

Deber implementar los siguientes mtodos estticos: factorial ( n ) n 0 debe ser un entero largo. Implemente la definicin recursiva de este mtodo: 1 n=0 factorial (n) = n * factorial (n - 1) n > 0 coeficiente ( n, k ). Haga uso de la Definicin 1 coeficiente_pascal ( n, k ). Haga uso de la Definicin 2 Cree un mtodo main dentro de esta clase que compruebe el correcto funcionamiento de todos los mtodos anteriores. Cuestin: Hasta qu valor de n se puede calcular el resultado de los tres mtodos anteriores? D una explicacin. Opcional: Escriba el cdigo necesario para generar y mostrar el tringulo de Pascal.

14

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 12 De los mtodos a la PBO


o Recuerde crear una carpeta nueva para el proyecto, copiar en ella el fichero Teclado.java y aadirlo al proyecto.
public class Ejemplo1 { public static void main (String args[]) { // Lectura de datos por teclado System.out.print ("Introduzca un entero a = "); int a = Teclado.readInt (); System.out.print ("Introduzca un entero b = "); int b = Teclado.readInt (); // Clculos int suma = a + b; int resta = a - b; int producto = a * b; int division = (int) a / b; // Resultados por pantalla System.out.println ("Suma = " + suma); System.out.println ("Resta = " + resta); System.out.println ("Producto = " + producto); System.out.println ("Division = " + division); } } // class Ejemplo1

A partir del cdigo anterior, implemente una clase Ejemplo2.java en el que se definan cuatro mtodos estticos que permitan sumar, restar, multiplicar y dividir enteros. Todos los mtodos toman como argumento los dos enteros a operar y devuelven un entero como resultado. Modifique adecuadamente el mtodo main para que, empleando estos mtodos, se comporte como el main del Ejemplo1. A partir del resultado anterior, disee e implemente una clase Entero.java cuya nica variable de instancia sea un valor del tipo int. Cree el/los constructor/es que considere adecuados. Cree los mtodos de consulta (get) y modificacin (set) que considere adecuados. Cree tambin los mtodos adecuados para sumar, restar, multiplicar y dividir objetos de la clase Entero (no int).

Para probar la correccin de esta clase, modifique el mtodo main de la clase Ejemplo1, creando sendos objetos de tipo Entero a partir de los datos ledos por teclado y oprelos para que produzcan el mismo resultado que antes.

15

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 13 Clases e Interfaces


Objetivos: ejercitar la creacin de objetos y la definicin y uso de clases e interfaces. Se trabajar con el interfaz Ordenable que sigue una estructura parecida a la del interfaz comparable vista en clase con el ejemplo de los cuerpos celestes. Ejemplo 1. Defina una clase Coche que incluya los atributos siguientes: matrcula (String), aoMatriculacin (short), color (String), fabricante (String), modelo (String), caballos (short), kilmetros (short). Los que estn en negrita son obligados en el constructor. Incluya mtodos para acceder a todos los atributos y para cambiarlos. Incluya un mtodo toString() que imprima en consola toda la informacin del coche dado. Escriba una clase PruebaCoche en el que se demuestre cmo crear objetos coche, modificar y acceder a su estado. Ejemplo 2. Defina una clase Avin que incluya los atributos siguientes: identificador (String), aoMatriculacin (short), fabricante (String), numeroPlazas (short), esMilitar (boolean), horasDeVuelo (short), numerosDeVuelo (short). Los que estn en negrita son obligados en el constructor. Incluya mtodos para acceder a todos los atributos y para cambiarlos. Incluya un mtodo toString() que imprima en consola toda la informacin del avin dado. Escriba una clase PruebaAvin en el que se demuestre cmo crear objetos avin, modificar y acceder a su estado. Ejemplo 3. Declare un interfaz que se llame Ordenable que contenga un mtodo con la siguiente signatura: public int ordenable (Object o); Modifique las definiciones anteriores de las clases Avin y Coche de manera que implementen el interfaz segn la siguiente definicin: Para Coche el mtodo ordenable devuelve -1 si el coche que ejecuta el mtodo tiene menos kms que el coche recibido como argumento. Devuelve cero si tiene los mismos ms menos 1000 kms y 1 si tiene ms de 1000 kms de diferencia. Para Avin el mtodo ordenable devuelve -1 si el avin que ejecuta el mtodo tiene un valor (horasDeVuelo*100 + 300*numerosDeVuelo) menor que el del avin recibido como argumento. Devuelve cero si tiene los mismos ms menos 500 y 1 si tiene ms de 500 de diferencia.

Ejemplo 4. Escriba el cdigo main de una clase de Prueba que defina dos arrays del tipo Ordenable, de manera que uno contenga coches y otro aviones. Utilizando la implementacin del mtodo ordenable, aplique el mtodo de la burbuja para ordenar cada uno de los arrays. El programa de prueba deber imprimir los datos de los objetos antes y despus de ser ordenados (de manera ascendente).

16

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 14 Aspectos bsicos de la Prog. Orientada a Objetos: la herencia


Objetivos: aprender a definir subclases mediante la redefinicin de clases existentes Java. Crear objetos a distintos niveles de la jerarqua de herencia y realizar las conversiones de tipos entre referencias a objetos y comprobar el resultado. Partimos del ejemplo de herencia demostrado en la figura adjunta.
vehiculo

vehiculo terrestre

vehiculo areo

camion

coche

avion

helicoptero

Paso 1. Implemente en Java el esqueleto de todas las clases del ejemplo junto con sus relaciones de herencia. Hgalas sin cdigo (slo con { }) y complelas. Paso 2. Aada a cada clase un mtodo toString() que muestre en pantalla un mensaje del tipo soy un camin, soy un coche, soy un vehculo terrestre, etc. Paso 3. Cree una clase Prueba con main() en la que se creen objetos de las clases: camin, coche, avin y helicptero. Compruebe qu se imprime en pantalla al invocar a cada objeto el mtodo toString(). Paso 4. Aada a vehculo terrestre el atributo kilmetros y a la clase vehculo areo el atributo horas de vuelo. Aada tambin mtodos para cambiar y acceder dicho atributo en las clases mencionadas. Aada los siguientes atributos especficos de las clases mencionadas: para camin el nmero mximo de kilogramos; para coche el nmero mximo de ocupantes; para avin si es militar o no; y para helicptero el nmero de horas de autonoma en vuelo. Haga que todos estos atributos queden dichos en el constructor de cada clase y modifique la implementacin del mtodo toString para mostrar dicha informacin en cada caso. Ample la clase de prueba anterior demostrando la creacin de objetos con los nuevos constructores y el uso de los mtodos definidos. Los mtodos definidos en la superclase estn disponibles en las subclases: se heredan!. Paso 5. Cree en la clase de Prueba un objeto de la clase vehculo terrestre. Intente acceder al mtodo toString(). Qu ocurre?. Paso 6. Cree un objeto de la clase camin pero almacene la referencia en una variable del tipo vehculo terrestre. Qu pasa si pide toString()?. Qu pasa si pide los kilmetros?. Y si le pide el numero mximo de kilogramos?. Asigne (mediante el cast apropiado) la referencia anterior a un identificador de la clase camin. Cuntos objetos camin tiene entonces?. Qu ocurre ahora con las invocaciones?. Paso 7. Cree un objeto de la clase vehculo areo y gurdela en un identificador de dicha clase. Qu pasa si intenta guardar la referencia en una variable de la clase avin, en compilacin o en ejecucin?. Paso 8. Defina una array de vehculos. Cree una decena de objetos de las distintas clases (camin, coche, avin y helicptero) y almacnelas en dicho array. Escriba un bucle for que recorra el array y muestre en pantalla el mtodo toString() de cada uno. Qu se muestra?. Lo esperaba?.

17

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 15 Aspectos Avanzados de la Programacin Orientada a Objetos: Constructores y visibilidad


Objetivos: una vez se conoce la especializacin en clases relacionadas por herencia, se pretende comprender con detalle el funcionamiento en la ejecucin de los constructores y aspectos bsicos relacionados con la visibilidad de propiedades.
Vehculo Ao Matriculacin : String Precio de Coste : String descripcin = Soy un vehculo pasarInspeccinTcnica() toString()

Vehculo terrestre descripcin = Soy un vehculo Terrestre caballosDePotencia toString() arrancar() parar()

Vehculo Areo horasDeVuelo : Integer horasAutonomaEnVuelo : Integer descripcin = Soy un vehic. Areo despegar() aterrizar() toString()

Visibilidad soy atributo privado soy atributo pblico soy atributo protected soy atributo paquete soy operacion publica() soy operacion privada() soy operacion protected() soy operacin de paquete()

Avin numeroDeMotores : Integer numeroDePlazas : Integer descripcin = Soy un Avin toString()

Helicptero esDeRes cate : Boolean descripcin = Soy un Helicptero toString()

Parte I. Dada la jerarqua anterior implemente en Java las clases involucradas teniendo en cuenta: Las visibilidades indicadas en la clase Visibilidad. La presencia de constructores en todas las clases que inicialicen adecuadamente todas las variables de instancia y entre ellas el correspondiente atributo descripcin. Impedir que se puedan crear objetos en las clases Vehculo y Vehculo Areo. Impedir que se especialicen ms las clases Vehculo terrestre, Avin y Helicptero. Cada toString retorna el valor del atributo descripcin. Parte 2. - Prepare ejemplos que intenten acceder a las propiedades privadas y protected (no hace falta que sea para todas las clases). - Cree objetos donde sea posible y juegue con las referencias asignndolas a identificadores de las superclases para demostrar los efectos de la invocacin del mtodo toString Ocurre lo que esperaba? Pruebe a eliminar el mtodo toString de todas las clases salvo de Vehculo. Qu ocurre entonces? - Cambie la visibilidad del atributo descripcin en todas las clases para que sea protected. Cree un objeto de la clase Avin y haga que le apunten dos referencias: una de la clase Avion y otra de la clase Vehiculo. Muestre por pantalla el descriptor de dicho objeto desde ambas referencias Qu aparece? - Prepare tambin algn ejemplo donde se haga downcasting y upcasting, provocando situaciones correctas, con error en compilacin y con error en ejecucin.

18

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 16 Aspectos Avanzados de la P. Orientada a Objetos (II): Composicin, Herencia, Interfaces y Patrones
Objetivos: una vez se conocen los mecanismos bsicos que proporciona la orientacin a objetos, se pretende que el alumno sea capaz de conjugar todos ellos desarrollando un ejemplo ms completo y complejo que los anteriores y en el que deber integrar todo lo aprendido hasta ahora. Tambin se pretende que el alumno advierta la importancia de la fase de diseo que debe preceder a todo desarrollo de software, as como familiarizarle con la notacin UML (Unified Modeling Language) y en particular con sus Diagramas de Clases. Parte I. Dado el Diagrama de Clases UML mostrado en la Fig. 1, implemente en Java las clases involucradas teniendo en cuenta: La presencia de constructores en todas las clases que inicialicen adecuadamente las variables de instancia. Adems de los mtodos pblicos declarados en cada clase, proporcione mtodos get y set para la consulta / modificacin de cada una de las variables de instancia. En la jerarqua de Clases relacionadas con Figura, cada toString retorna la concatenacin de los atributos de la clase correspondiente, as como el resultado del rea y el permetro. Observe las etiquetas <<abstract>> y <<final>> (estereotipos UML) en cada una de las clases.
Punto int x int y String toString() <<abstract>> Figura tipo : String = "Figura" tiene 1 String toString() <<abstract>> double calcularArea() <<abstract>> double calcularPeri()

centro 1

<<final>> Circulo tipo : String = "Circulo" radio : int String toString()

<<final>> Cuadrado tipo : String = "Cuadrado" lado : int String toString()

Fig. 1. Cree un programa de Prueba en el que se almacenen 2 Crculos y 2 Cuadrados en una tabla de Figuras. Recorra la tabla mostrando el toString de todas las Figuras (Polimorfismo). Parte 2. Partiendo de la implementacin anterior y dado el Diagrama de Clases UML mostrado en la Fig. 2, implemente en Java las nuevas clases teniendo en cuenta que: A el/los constructor/es de la clase Aplicacin se le/s debe proporcionar el nmero mximo de Figuras (maxFiguras) que es capaz de gestionar la aplicacin. Si no, por defecto se asumir que el mximo es de 10 Figuras. Al construir una Aplicacin numFigActual se inicializar a cero, incrementndose su valor cada vez que se aada una nueva Figura mediante el mtodo addFigura (Figura f).

19

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

El mtodo addFigura (Figura f) insertar la Figura f en la siguiente posicin libre (numFigActual) y mostrar un mensaje de error cuando se intente insertar ms figuras de las que puede gestionar la aplicacin (maxFiguras). El mtodo dibujarFiguras ( ) delega en el mtodo dibujar asociado al Contexto de la Aplicacin. As, si el Contexto es Textual, este mtodo mostrar en la salida estndar lo que devuelve el mtodo toString de cada Figura. En el caso de que el Contexto sea Grfico aparecer una ventana en la que se dibujarn las Figuras correspondientes. La clase ContextoGrafico la pueden encontrar ya implementada en la web de la asignatura (material docente) y en el Aula Virtual.
<<abstract>> Figura tipo : String = "Figura" Aplicacion int numFigActual int maxFiguras 1 1 void addFigura() void dibujarFiguras() void cambiarContexto (Contexto)()

tiene

tiene 1

<<Interfaz>> Contexto void dibujar (Figura [] lista, int numFigActual)()

0..n String toString() <<abstract>> double calcularArea() <<abstract>> double calcularPeri()

Contexto Grafico

Contexto Textual

Fig. 2. Escriba un programa Prueba2 en el que: Se cree una Aplicacin (inicialmente en modo Texto). Se aadan varias Figuras a la Aplicacin. Dibuje todas las Figuras aadidas. Cambie el Contexto de Textual a Grfico Vuelva a dibujar todas las Figuras.

A continuacin:

20

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 17 Aspectos Bsicos del Manejo de Excepciones en Java


Objetivos: el alumno deber desarrollar una serie de ejemplos que provoquen el lanzamiento de excepciones en ejecucin adems de proveer los mecanismos necesarios para la gestin de las mismas. Para cada excepcin indicada, el alumno puede consultar la ayuda para tener un conocimiento ms completo. La prueba de cada excepcin debe hacerse ubicando en una clase distinta el mtodo que genera la excepcin del mtodo en donde se captura y gestiona. Cada apartado especificar las peculiaridades exigidas segn el contexto. En todos los casos, cuando se capture una excepcin se deber informar de su tipo y manejarla segn convenga. 1. IllegalArgumentException. Este tipo de excepciones se lanza cuando se invoca a un mtodo pasndole algn argumento inadecuado. Por ejemplo, el constructor de una clase Racional podra lanzar esta excepcin si se le pasa como argumento un denominador igual a cero. Esta excepcin debe capturase y gestionarse en otra clase de Prueba. 2. ClassCastException. Esta excepcin ocurre cuando, dadas dos clases relacionadas por herencia, se realiza un downcasting que falla en ejecucin. Se pide que la clase de prueba la capture e informe del error. 3. ArithmeticException. En este caso se puede hacer todo dentro de la clase de prueba con una divisin por cero. 4. ArrayIndexOutOfBoundsException. Implemente un mtodo que tome como parmetros de entrada un array de enteros y una posicin (entero), y devuelva el valor almacenado en dicha posicin. Fjese que no es necesario manejar la excepcin si el mtodo comprueba que la posicin es menor que el tamao del array. 5. NullPointerException. Escriba un programa de prueba que cree aleatoriamente (unas veces s, otras no) un objeto de la clase String y pruebe a pedirle su longitud. Para conseguir la aleatoriedad utilice Math.random() mtodo que genera un nmero real en el intervalo [0,1). 6. Escriba una nueva versin del apartado 3 de manera que se defina una nueva clase DivisionPorCero como subclase de la referida. Modifique el programa para capturar esta nueva situacin que evidentemente deben generar de manera explcita cuando la excepcin sea detectada.

21

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 18 Manejo de Excepciones en Java (II)


Objetivos: el alumno deber desarrollar un ejemplo en el que las situaciones excepcionales a manejar debern modelarse mediante excepciones propias (no predefinidas en Java).

La empresa TANQUES S.A. se dedica a la fabricacin de tanques de aluminio de gran volumen. Uno de sus clientes, la empresa LECHERA ESPAOLA S.A., se ha mostrado interesado en adquirir junto con los tanques algn tipo de programa que les permita controlar los niveles de leche en cada tanque. Los requisitos expuestos por el cliente son los siguientes: Inicialmente la empresa comprar 5 Tanques para su Planta cuyas capacidades (en miles de litros) sern [25, 10, 10, 5, 5], si bien en la instalacin podran instalarse hasta 10 tanques ms si las condiciones del mercado fueran favorables. El programa conocer la capacidad de cada tanque (volumen_total) e inicialmente establecer sus lmites de llenado/vaciado como volumen_mximo = volumen_total y volumen_mnimo = 0. Estos lmites podrn ajustarse (siempre dentro del rango [0, volumen_total]) si los requisitos de seguridad as lo recomiendan. El programa deber llevar cuenta del volumen_actual de leche almacenado en cada tanque. Cada vez que la Planta reciba un cierto volumen de leche a almacenar, ste se colocar en el primer Tanque en el que quepa completo sin sobrepasar el lmite mximo de llenado. Del mismo modo, cada vez que la Planta facture un cierto volumen de leche, ste se obtendr del primer Tanque en el que la extraccin no viole el lmite mnimo de vaciado. Adems de las operaciones de llenado y vaciado de cada Tanque, es posible trasvasar un cierto volumen de leche de un tanque a otro. En este caso ser necesario controlar que no se viole el volumen mximo del tanque de destino pero no el volumen mnimo del tanque de origen, que podr quedar vaco.

Para modelar este sistema, la empresa TANQUES S.A. ha decidido aprovechar el potente mecanismo de excepciones proporcionado por Java, de modo que cada vez que durante el llenado/vaciado/trasvase de los tanques se intente una operacin que viole los lmites mximo/mnimo establecidos, se producir una excepcin de tipo TanqueLLenoException/TanqueVacioException, ambas derivadas de la excepcin predefinida en Java SequrityException. Estas excepciones debern ser apropiadamente capturadas y procesadas en la aplicacin principal. Ejercicio: Modele el sistema expuesto en el enunciado y cree una aplicacin principal que permita simular la siguiente secuencia1 {IN 22.500, IN 8000, IN 2000, IN 2500, IN 1000, OUT 23.000, OUT 8000, OUT 2000, TRANS 2-0 500, OUT 2000, OUT 1000}

IN x: Llenar x litros, OUT x: Vaciar x litros, TRANS A-B x: trasvasar x litros del tanque A al tanque B

22

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 19 Introduccin a Swing. Aplicacin a los Tanques (I)


Objetivos: el alumno deber desarrollar aportar una capa grfica sencilla al ejemplo de los tanques. Se desea obtener el siguiente interfaz grfico sencillo para la gestin de los tanques.

Pantalla de Ejecucin deseada. Consideraremos tres paneles (JPanel) exteriores. El primero englobar dos subpaneles (JPanel), uno para el tanque origen y otro para el tanque destino. Cada uno de estos subpaneles englobar una etiqueta (JLabel) y un conjunto de botones de radio (JRadioButton). El Layout debe ser el por defecto, es decir, no debe indicar nada al respecto. Los botones de radio han sido agrupados utilizando la clase ButtonGroup que permite que slo uno de ellos est activado en un momento dado. El segundo panel engloba una etiqueta (JLabel) ms un campo de texto (JTextField) para introducir los litros. La clase Intenger tiene el mtodo parseInt(String s) para convertir a entero el contenido (getText()) del campo de texto. Deber manejarse la excepcin posible por no introducir un nmero vlido entero. El tercer panel tiene a los tres botones que se muestran. Se pide: I. Con las indicaciones anteriores confeccione un JFrame (size = 500x500) que en ejecucin tenga un aspecto similar y se hayan seguido los pasos anteriores. II. Incorporamos gestin de eventos muy sencilla para todos los componentes (botn, botn de radio y campo de texto) implementando el interfaz ActionListener y su mtodo asociado donde identificaremos la fuente del evento (getSource()) y haremos System.out.println indicando qu evento ocurri. He seleccionado el tanque origen 1 He seleccionado el tanque destino 2 12 litros seleccionados para transferir 0 litros seleccionados para transferir Una posible traza en la salida textual sera: 0 litros seleccionados para transferir No es un nmero vlido 0 litros seleccionados para transferir He pulsado botn de llenar He pulsado botn de trasvasar He pulsado botn de vaciar

23

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 20 Introduccin a Swing. Aplicacin a los Tanques (II)


Objetivos: el alumno deber completar la prctica anterior, aadiendo a la aplicacin grfica desarrollada, la funcionalidad correspondiente a la planta de tanques implementada en la sesin 18. IMPORTANTE: La aplicacin GUI es la que hace de Planta de Tanques de la sesin 18. Lo ideal sera separar completamente la parte de presentacin de la de aplicacin pero por simplificar lo hacemos como se explica ms abajo. Se suprime el recorrido automtico buscando en qu tanque cabe dado que el usuario elige origen/destino. Si no tiene el cdigo de los tanques, est disponible en el Web.

Paso 1: Aada a la aplicacin de la sesin GUI(I) un componente texto de la clase JTextArea para poder mostrar el estado de los tanques y la traza de las operaciones que se llevan a cabo. El contenido de este componente no podr ser modificado por el usuario (consulte el mtodo setEnabled en la ayuda). Para conseguir mostrar tantas lneas de texto como se desee, aada el componente a un objeto de la clase JScrollPane y pegue este en el panel2. Consulte en la ayuda cmo se coloca la barra. Bsicamente es decirle al JScrollPane como argumento el JTextArea en el que se aplica. Paso 2: Modifique el mtodo actionPerformed implementado en la sesin anterior para que muestre la salida de todas acciones en el nuevo rea de texto (consulte el mtodo append en la ayuda de la clase JTextArea) cada vez que se haga un movimiento de litros, en lugar de en la salida estndar. Paso 3: Aada al proyecto las clases TanqueVacioException, TanqueLLenoException y Tanque implementadas en la sesin 18 (puede descargarlas de la pgina web de la asignatura o del Aula Virtual). Declare e inicialice convenientemente una tabla de 3 tanques con capacidades para almacenar 500, 1000 y 1500 litros respectivamente. Paso 5: Implemente en la clase un mtodo mostrarTanques que muestre en el rea de texto el estado de los 3 tanques (capacidad, volumen mnimo y mximo y volumen actual).

24

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Paso 4: Modifique de nuevo el mtodo actionPerformed para que al pulsar los botones Llenar, Traspasar o Vaciar se ejecuten las correspondientes acciones sobre el/los tanque/s seleccionado/s como origen (y destino). Tras cada una de estas tres operaciones, muestre el estado de los tanques haciendo uso del mtodo implementado en el paso 5. Nota 1: Asegrese de manejar las excepciones que se pudieran producir. Nota 2: Recuerde que en Java las tablas se indexan desde 0. // Ejemplo del cdigo de vaciado de un tanque donde aparece el mtodo mostrar tanques. if (ae.getSource()==boton3) { texto.append("He pulsado botn de vaciar\n"); texto.append ("Vaciando tanque "+origen+" " +cantidad +" l\n"); try { tanques[origen].vaciar(cantidad); mostrarTanques(); // recorrido por el estado de cada uno y mostrarlo } catch (Exception e){ texto.append (e.getMessage()); }

25

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

Sesin 21 Introduccin a las Estructuras Dinmicas de Datos: Aplicacin a los tanques

Objetivos: El alumno implementar una Estructura Dinmica de Datos (EDD) de tipo lista doblemente enlazada capaz de almacenar objetos de cualquier clase y analizar las ventajas e inconvenientes de este tipo de estructuras frente a las estticas (tablas). Enunciado: Cree un nuevo proyecto y adale los ficheros java de esta sesin que podr descargar de la pgina de la asignatura o del Aula Virtual: Nodo, Lista, ListaException, PlantaLechera, Tanque, TanqueVacioException, TanqueLLenoException y Principal (contiene el mtodo main). Algunas de estas clases ya estn implementadas y otras deben completarse, ya que slo se facilita su esqueleto. Complete por este orden el esqueleto de las siguientes clases: 1) Clase Nodo: estructura doblemente auto-referenciada capaz de almacenar objetos de cualquier clase (Object). 2) Clase ListaException: excepcin lanzada por algunos mtodos de la clase Lista. 3) Clase Lista: lista lineal doblemente enlazada con referencias al primer y ltimo nodos, tal y como se muestra en la figura siguiente. Recuerde que los Nodos de la Lista almacenan Object y por lo tanto cada vez que recupere un elemento deber hacer el cast correspondiente para trasformarlo en un Tanque.
inicio final null null

Object

Object

Object

Tanque

Tanque

Tanque

4) Clase PlantaLechera: en sesiones anteriores cada Planta contena un array de Tanques que ahora deber sustituirse por una Lista de Tanques. Ejecute la clase Principal para comprobar la correcta implementacin de las clases anteriores. Cuestiones: En este problema concreto Qu ventajas presenta el uso de una estructura dinmica frente a un array? Qu inconvenientes? Hay alguna ventaja / desventaja en el hecho de que la lista sea doblemente enlazada? En este caso hemos utilizado una Lista de Tanques, pero podramos crear una Lista de Plantas Lecheras? y una Lista de int?

26

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

ANEXO I.
Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS SUMMARY: INNER | FIELD | CONSTR | METHOD FRAMES NO FRAMES DETAIL: FIELD | CONSTR | METHOD

Class Teclado
java.lang.Object | +--Teclado

public class Teclado extends java.lang.Object

Field Summary
static byte BYTE_ERR static char CHAR_ERR static double DOUBLE_ERR static float FLOAT_ERR static int INT_ERR static short SHORT_ERR static java.lang.String STRING_ERR

Constructor Summary
Teclado()

Method Summary
static byte readByte()

Mtodo que lee una lnea de teclado y devuelve el byte escrito por el usuario. 27

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.


static char readChar()

Boletn de Prcticas

Mtodo que lee una lnea de teclado y devuelve el char escrito por el usuario.
static double readDouble()

Mtodo que lee una lnea de teclado y devuelve el


double escrito por el usuario. static float readFloat()

Mtodo que lee una lnea de teclado y devuelve el


float escrito por el usuario. static int readInt()

Mtodo que lee una lnea de teclado y devuelve el int escrito por el usuario.
static short readShort()

Mtodo que lee una lnea de teclado y devuelve el


short escrito por el usuario. static java.lang.String readString()

Mtodo que lee una lnea de teclado y devuelve el


String escrito por el usuario.

Methods inherited from class java.lang.Object


clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail
BYTE_ERR
public static final byte BYTE_ERR

SHORT_ERR
public static final short SHORT_ERR

INT_ERR
public static final int INT_ERR

28

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

DOUBLE_ERR
public static final double DOUBLE_ERR

FLOAT_ERR
public static final float FLOAT_ERR

CHAR_ERR
public static final char CHAR_ERR

STRING_ERR
public static final java.lang.String STRING_ERR

Constructor Detail
Teclado
public Teclado()

Method Detail
readByte
public static byte readByte()

Mtodo que lee una lnea de teclado y devuelve el byte escrito por el usuario. Returns: Devuelve el byte introducido por el usuario o Teclado.BYTE_ERR si no se introdujo un byte.

readShort
public static short readShort()

Mtodo que lee una lnea de teclado y devuelve el short escrito por el usuario. Returns: Devuelve el short introducido por el usuario o Teclado.SHORT_ERR si no se introdujo un byte.

29

FUNDAMENTOS DE PROGRAMACIN ETSIT. ITT. Especialidad Telemtica.

Boletn de Prcticas

readInt
public static int readInt()

Mtodo que lee una lnea de teclado y devuelve el int escrito por el usuario. Returns: Devuelve el int introducido por el usuario o Teclado.INT_ERR si no se introdujo un byte.

readDouble
public static double readDouble()

Mtodo que lee una lnea de teclado y devuelve el double escrito por el usuario. Returns: Devuelve el double introducido por el usuario o Teclado.DOUBLE_ERR si no se introdujo un byte.

readFloat
public static float readFloat()

Mtodo que lee una lnea de teclado y devuelve el float escrito por el usuario. Returns: Devuelve el float introducido por el usuario o Teclado.FLOAT_ERR si no se introdujo un byte.

readChar
public static char readChar()

Mtodo que lee una lnea de teclado y devuelve el char escrito por el usuario. Returns: Devuelve el char introducido por el usuario o Teclado.CHAR_ERR si no se introdujo un byte.

readString
public static java.lang.String readString()

Mtodo que lee una lnea de teclado y devuelve el String escrito por el usuario. Returns: Devuelve el String introducido por el usuario o Teclado.STRING_ERR si no se introdujo un byte.

30

Вам также может понравиться