Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tema2

244 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Tema2

  1. 1. EstucturasEstucturas de Datosde Datos PPááginagina 11 Unidad I Tema 2: Introducción a Java Profesor: Jorge Escalona / Tobías Bolívar Email: escaljorge@gmail.com / tobiasbolivar@gmail.com Página Web: http://estructuradatos.tripod.com
  2. 2. EstucturasEstucturas de Datosde Datos PPááginagina 22 Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java Qué es Java? De acuerdo a la información proporcionada por Sun Microsystems (http://java.sun.com), java es: [un] lenguaje simple, orientado a objetos, distribuido, interpretado, sólido, seguro, de arquitectura neutral, de alto desempeño, de multihilos y dinámico.
  3. 3. EstucturasEstucturas de Datosde Datos PPááginagina 33 • Simple: basado en C++, pero sin muchas de las características más tediosas de éste. – Java no ofrece soporte a los tipos de datos punteros ni a la herencia múltiple. – Java no ofrece soporte ni a typedef ni a #define. – Java tiene un sistema automático para asignación y liberacion de memoria (recolección de basura). – Java tiene una clase String como parte de sus tipos básicos. • Orientado a objetos: provee una clara y eficiente tecnología para soportar las principales características de un lenguaje orientado a objetos. – Encapsulación. – Polimorfismo. – Herencia. Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java Qué es Java?
  4. 4. EstucturasEstucturas de Datosde Datos PPááginagina 44 • Distribuido: diseñado específicamente para trabajar en un ambiente de redes, con una biblioteca muy grande para la programación utilizando el grupo de protoolos TCP/IP. • Interpretado: el compilador de Java traduce un archivo fuente a códigos de byte (bytecodes), el cuál se puede ejecutar en cualquier máquina en la cual se haya instlado el interpretador y la plataforma de ejecución de Java. • Sólido: implementa una tipificación rigurosa y elimina el manejo de apuntadores que puedan dañar fácilmente la memoria. Además, soporta diferentes niveles de verificación de errores, tanto en tiempo de compilación como en tiempo de ejecución. Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java Qué es Java?
  5. 5. EstucturasEstucturas de Datosde Datos PPááginagina 55 • Seguro: diseñado para ejecutarse en ambientes distribuidos, por lo cual incorpora diferentes niveles de seguridad que restringen el acceso y la ejecución indebida de archivos. • Arquitectura neutral: el código de bytes generado es ejecutado por el interpretador de java, lo cual lo hace independiente de la plataforma. • Portable: debido su arquitectura neutral, se permite una gran capacidad de portabilidad, además de se estandarizan todos los tipos de datos básicos que en algunos sistemas pueden diferir. Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java Qué es Java?
  6. 6. EstucturasEstucturas de Datosde Datos PPááginagina 66 • De alto desempeño: soporta diversas características que le permiten un rendimiento tan alto como cualquier compilador nativo, sin sacrificar la robustez y seguridad. • multihilos: se puede utilizar para crear aplicaciones que implementen más de una cosa a la vez,a través de un sistema multihilos (multithreading), ideal para apoyar los programas que se ejecuten en tiempo real. • Dinámico: utiliza un método de interfaces que permite que nuevos métodos y variables de instancias en una biblioteca de objetos, sin afectar los objetos clientes dependientes. Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java Qué es Java?
  7. 7. EstucturasEstucturas de Datosde Datos PPááginagina 77 •Permite crear tres tipos distintos de aplicaciones: –Aplicaciones ordinarias (standalone). –Applets. –Más recientemente: –Servlets. –JavaBeans –Páginas JSP –Enterprise JavaBean Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java Qué es Java?
  8. 8. EstucturasEstucturas de Datosde Datos PPááginagina 88 •La fundamental es el JDK de Sun (¡¡gratis!!). •Existen multitud de entornos de desarrollo de otros fabricantes. •Existen versiones del JDK para diferentes plataformas: –Linux, Win95+,/NT, Solaris, MacOS, ... •El JDK se renueva cada poco tiempo. Herramientas de Desarrollo Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java
  9. 9. EstucturasEstucturas de Datosde Datos PPááginagina 99 Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java Contenido del Java SDK 1.3
  10. 10. EstucturasEstucturas de Datosde Datos PPááginagina 1010 •Principales herramientas del SDK •El compilador: javac.exe •El depurador: jdb.exe •El intérprete: java.exe y javaw.exe •El visualizador de applets: appletviewer.exe •El generador de documentación: javadoc.exe •Un desensamblador de clases: javap.exe •El generador de archivos fuentes y de cabecera (.c y .h) para clases nativas en C: javah.exe Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java
  11. 11. EstucturasEstucturas de Datosde Datos PPááginagina 1111 •A partir del subdirectorio principal •Deberemos incluir el subdirectorio bin en el PATH •Especial importancia a la variable de entorno CLASSPATH •No descomprimir el archivo classes.zip Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java Contenido del Java SDK 1.3
  12. 12. EstucturasEstucturas de Datosde Datos PPááginagina 1212 Compilación y Ejecución de un programa en Java Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java C:javajavac myProgram.java C:javajava myProgram JVM
  13. 13. EstucturasEstucturas de Datosde Datos PPááginagina 1313 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Programa “Hola Mundo” class Hola { public static void main(String argumentos[]) { System.out.println("hola, mundo"); } } •El programa se inicia llamando al método main de la clase principal. •El nombre de la clase principal es el mismo que el del archivo fuente: –Hola.java Ejemplo: Bienvenido.java
  14. 14. EstucturasEstucturas de Datosde Datos PPááginagina 1414 • public: indica que el método main es público y, por tanto, puede ser llamado desde otras clases. • static: indica que la clase no necesita ser instanciada para poder utilizar el método al que califica. • void: indica que la función main no devuelve ningún valor. • El método main debe aceptar siempre, como parámetro, un vector de Strings, que contendrá los posibles argumentos que se le pasen al programa en la línea de comandos, aunque como es nuestro caso, no se utilice. Programa “Hola Mundo” – El código Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  15. 15. EstucturasEstucturas de Datosde Datos PPááginagina 1515 • El método println es un método estático de la clase System (no hace falta declarar un objeto de esa clase para usarlo). • El atributo out hace referencia a la salida estándar, así el println escribe por ella (la cadena que le pasamos y un final de línea). System.out.println(“Hola, mundo”); Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  16. 16. EstucturasEstucturas de Datosde Datos PPááginagina 1616 Unidad I: ProyectosUnidad I: Proyectos • Un proyecto puede tener varios archivos. • Cada archivo puede tener varias clases. • El compilador genera un archivo .class para cada clase. • Para ejecutarlo, llamamos al intérprete y le pasamos el nombre de la clase principal: java Hola Compilación de un proyecto Ejemplo: Error.java
  17. 17. EstucturasEstucturas de Datosde Datos PPááginagina 1717 • java.lang: clases esenciales, números, strings, objetos, compilador, runtime, seguridad y threads (se incluye automáticamente en todo programa Java) • java.io: clases que manejan entrada y salida. • java.net: clases para el soporte de redes (URL, TCP, UDP, IP, FTP, etc). • java.awt: clases para manejo de interfaces gráficas, ventanas, etc. • java.awt.image : clases para el manejo de imágenes. • java.awt.peer: clases para el manejo de interfaces gráficas dependientes de la plataforma (motif, windows). • java.applet: clases para la creación de applets y recursos para reproducción de audio. Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Bibliotecas básicas de Java
  18. 18. EstucturasEstucturas de Datosde Datos PPááginagina 1818 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Tipo Descripción Tamaño/Formato Byte Entero de un byte 8-bits complemento 2 Short Entero corto 16-bits complemento 2 Int Entero 32-bits complemento 2 Long Entero largo 64-bits complemento 2 Float Punto flotante, precisión simple 32-bits IEEE 754 Double Punto flotante, precisión doble 64-bits IEEE 754 Char 16-bit carácter Unicode 16-bits carceter Unicode Boolean Valor booleano True o False Tipos de Datos Simples
  19. 19. EstucturasEstucturas de Datosde Datos PPááginagina 1919 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje •Los tipos simples anteriores son "envueltos" por clases equivalentes (java.lang.Integer, java.lang.Double, java.lang.Byte, etc.) , que pueden tratarlos como si fueran objetos en lugar de datos simples. •A diferencia de otros lenguajes de programación como el C, en Java los tipos de datos simples no dependen de la plataforma ni del sistema operativo. Un entero de tipo int siempre tendrá 4 bytes. Tipos de Datos Simples Ejemplo: AB.java TipoBoolean.java
  20. 20. EstucturasEstucturas de Datosde Datos PPááginagina 2020 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Tipos de Datos Referencias •Arreglos •Clases •Interfaces Nota: Las referencias son elementos de datos cuyo valor es una dirección de memoria. En otros lenguajes son llamados apuntadores. En java no se permite explícitamente acceder directamente a las posiciones de memoria a las cuales hacen referencia, sólo se pueden accesar a a través del nombre de variable. Nota: Las referencias son elementos de datos cuyo valor es una dirección de memoria. En otros lenguajes son llamados apuntadores. En java no se permite explícitamente acceder directamente a las posiciones de memoria a las cuales hacen referencia, sólo se pueden accesar a a través del nombre de variable.
  21. 21. EstucturasEstucturas de Datosde Datos PPááginagina 2121 Nombres de Variables • Deben comenzar con una letra seguida por cualquier carácter Unicode. • No hay límites en cuanto a la longitud del nombre de variable. • No se puede utilizar una palabra clave, ni las literales booleanas true o false, ni la palabra reservada null. • Debe ser única dentro del alcance que se está definiendo. Nota: por convención, los nombres de variables comienzan con una letra minúscula, y los nombres de clases con letras mayúsculas. Si el nombre de variable consiste de más de una palabra, se escriben una despué de la otra, y cada palabra después de la primera se inicia con una mayúscula. Aunque el caracter “underscore” ( _ ) es válido, por convención sólo se utiliza para separar palabras en nombres de constantes, ya que estas se escriben en mayúsculas. Ejemplo de tipos simples: valor, cantRegistros, esVisible. Ejemplo para clases : Animales, AnimalesVertebrados. Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  22. 22. EstucturasEstucturas de Datosde Datos PPááginagina 2222 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Alcance de Variables
  23. 23. EstucturasEstucturas de Datosde Datos PPááginagina 2323 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje // enteros byte maximoByte = Byte.MAX_VALUE; short maximoShort = Short.MAX_VALUE; int maximoInteger = Integer.MAX_VALUE; long maximoLong = Long.MAX_VALUE; // números reales float maximoFloat = Float.MAX_VALUE; double maximoDouble = Double.MAX_VALUE; // otros tipos simples char unCaracter = 'S'; boolean unBoolean = true; Inicialización de Variables
  24. 24. EstucturasEstucturas de Datosde Datos PPááginagina 2424 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Variables Finales (Constantes) final int varConstante = 0; final int constanteVacia; . . . constanteVacia = 0;
  25. 25. EstucturasEstucturas de Datosde Datos PPááginagina 2525 Operadores •Aritméticos: +,-,*,/,%,++,-- •Relacionales: <,>, <=, >=, ==, != •Condicionales: &&, ||, !,&,|,^ •Lógicos Binarios: >>,<<,&,|,^ •Asignaciones: =, +=, -=, *=, /=, %=, &=, |=, ^=,>>=, <<= •Otros: ?:, ( parametros), (tipo),., [ ], new, instanceof Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Ejemplo: Operadores.java Prioridad.java
  26. 26. EstucturasEstucturas de Datosde Datos PPááginagina 2626 Estructuras de Control Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje •Repetitivas: while, do-while, for •Condicionales: if-else, switch-case •Bifurcaciones: break, continue, label:, return •Manejo de Exepciones: try-cath-finally, throw
  27. 27. EstucturasEstucturas de Datosde Datos PPááginagina 2727 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Estructuras de Control Repetitivas: while (expresion) { instrucción(es) } do { instrucción(es) } while (expresión); for (inicialización; terminación; incremento) { instrucción(es) }
  28. 28. EstucturasEstucturas de Datosde Datos PPááginagina 2828 if (expresión) { instruccion(es) } Estructuras de Control Condicionales: if (expresion) { // instrucción(es) } else { // instrucción(es) } if (expresion) { // instrucción(es) } else if { // instrucción(es) } else if { // instrucción(es) } else { // instrucción(es) } Formato 1: Formato 2: Formato 3: Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  29. 29. EstucturasEstucturas de Datosde Datos PPááginagina 2929 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje switch (integer expression) { case integer expression: instruccion(es) break; ... default: instruccion(es) break; } Estructuras de Control Condicionales:
  30. 30. EstucturasEstucturas de Datosde Datos PPááginagina 3030 Estructuras de Control Condicionales: Inicio bloque { instrucción(es); [continue;] [break;] [return;] [return valor]; } label:etiqueta Inicio bloque { instrucción(es); [continue etiqueta;] [break etiqueta;] } Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Ejemplo: Bucles.java DoWhile.java
  31. 31. EstucturasEstucturas de Datosde Datos PPááginagina 3131 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje • Se reserva memoria al hacer new al instanciar un objeto. • Existe un "recolector de basura" que libera automáticamente la memoria no usada por objetos extinguidos. • Las variables simples no son objetos, pero los vectores si. Gestión de Memoria:
  32. 32. EstucturasEstucturas de Datosde Datos PPááginagina 3232 try { instruccion(es) }catch (nombre tipoexcepcion) { instruccion(es) }finally { instruccion(es) } • try: identifica un bloque de instrucciones dentro del cual una excepción (error) podría dispararse. • catch: identifica un bloque de instrucciones que pueden manejar un tipo específico de excepción. Las instrucciones se ejecutan sólo si se produce un tipo particular de excepción dentro del bloque try al cual está asociado. • finally: identifica un bloque de instrucciones que son ejecutadas independientemente de que un error ocurra o no en el bloque del try. Estructuras para el Manejo de Excepciones: Formato: Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  33. 33. EstucturasEstucturas de Datosde Datos PPááginagina 3333 leerArchivo{ abrir el archivo; determinar su tamaño; reservar la memoria necesaria; leer el archivo en la memoria; cerrar el archivo; } Manejo de Excepciones: Separación del código regular del código para el manejo de las excepciones Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  34. 34. EstucturasEstucturas de Datosde Datos PPááginagina 3434 leerArchivo { try { abrir el archivo; determinar su tamaño; reservar la memoria necesaria; leer el archivo en la memoria; cerrar el archivo; } catch (fileOpenFailed) { hacerAlgo; } catch (sizeDeterminationFailed) { hacerAlgo; } catch (memoryAllocationFailed) { hacerAlgo; } catch (readFailed) { hacerAlgo; } catch (fileCloseFailed) { hacerAlgo; } } Manejo de Excepciones: Separación del código regular del código para el manejo de las excepciones Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  35. 35. EstucturasEstucturas de Datosde Datos PPááginagina 3535 metodo1 { llamar a metodo2; } metodo2 { llamar a metodo3; } metodo3 { llamar a leerArchivo; } Manejo de Excepciones: Propagación de errores hacia arriba en la pila de llamadas Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  36. 36. EstucturasEstucturas de Datosde Datos PPááginagina 3636 metodo1{ try { llamar a metodo2; } catch (exception) { procesarError; } } metodo2 throws exception { llamar a metodo3; } metodo3 throws exception { llamar a leerArchivo; } Manejo de Excepciones: Propagación de errores hacia arriba en la pila de llamadas Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  37. 37. EstucturasEstucturas de Datosde Datos PPááginagina 3737 Manejo de Excepciones: Agrupación de errores por tipo (jerarquía de errores) Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  38. 38. EstucturasEstucturas de Datosde Datos PPááginagina 3838 catch (InvalidIndexException e) { . . . } catch (ArrayException e) { . . . } catch (Exception e) { . . . } Intercepta el error por Índice del arreglo fuera de rango Intercepta cualquier error relacionado con el arreglo Intercepta cualquier error del programa Manejo de Excepciones: Agrupación de errores por tipo (jerarquía de errores) Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  39. 39. EstucturasEstucturas de Datosde Datos PPááginagina 3939 Estructura de una clase Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
  40. 40. EstucturasEstucturas de Datosde Datos PPááginagina 4040 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia Declaración de una clase
  41. 41. EstucturasEstucturas de Datosde Datos PPááginagina 4141 Declaración de las variables miembros de una clase Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
  42. 42. EstucturasEstucturas de Datosde Datos PPááginagina 4242 Nivel de acceso de los miembros de una clase Unidad I: Clases y HerenciaUnidad I: Clases y Herencia XXpackage XXXXpublic XX*Xprotected Xprivate otrosPaqueteSubclaseClaseNivel
  43. 43. EstucturasEstucturas de Datosde Datos PPááginagina 4343 Declaración de los métodos miembros de una clase Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
  44. 44. EstucturasEstucturas de Datosde Datos PPááginagina 4444 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia Estructura de un método de una clase Partes de la declaración del método
  45. 45. EstucturasEstucturas de Datosde Datos PPááginagina 4545 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia • Son métodos especiales que sirven para inicializar una instancia de esa clase (objeto). • Tienen el mismo nombre que la clase. • Sintaxis: <modificador> <nombre_clase> ([<lista_argumentos>]) { [<instrucciones>] } • Podemos tener varios constructores en la misma clase que difieran en la lista de parámetros. • Invocación: Hola h=new Hola(); Métodos Constructores
  46. 46. EstucturasEstucturas de Datosde Datos PPááginagina 4646 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia Métodos Constructores (Constructor por defecto) • Hay siempre al menos un constructor en cada clase. • Si el programador no suministra ningún constructor, el constructor por defecto es incluido automáticamente: •El constructor por defecto no tiene argumentos. •El constructor por defecto no tiene instrucciones. • Permite al usuario de la clase crear instancias de objetos con el operador new Xxx () sin que el programador tenga que escribir un constructor.
  47. 47. EstucturasEstucturas de Datosde Datos PPááginagina 4747 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia Accesando Atributos y Métodos •Se utiliza la notación “punto”: <objeto>.<miembro> •Utilizado para accesar tanto los atributos como los métodos del objeto. •Dentro de los métodos de una clase no se necesita utilizar la notación “punto” para accesar los miembros de esa misma clase. •Ejemplos: d.setWeight(80); d.weight = 42; //válido si el atributo weight es público
  48. 48. EstucturasEstucturas de Datosde Datos PPááginagina 4848 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia Encapsulación •El problema: Código cliente tiene acceso directo a datos internos de la clase: MiFecha + dia + mes + anno MiFecha d = new MiFecha(); d.dia = 32; //día inválido d.mes = 2; d.dia = 30; //día inválido para ese mes d.dia = d.dia + 1; //no se verifica cambio de mes
  49. 49. EstucturasEstucturas de Datosde Datos PPááginagina 4949 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia •La Solución: Código cliente debe usar métodos de acceso para los datos internos: MiFecha d = new MiFecha(); d.setDia(32); //día inválido; retorna false d.setMes(2); d.setDia(30); //día inválido; retorna false d.setDia(d.getDia() + 1); //retorna false si ocurre cambio de mes Encapsulación MiFecha - dia - mes - anno + getDia() + getMes() + getAnno() + setDia(int) + setMes(int) + setAnno(int) - validarDia(int) Valida día según mes
  50. 50. EstucturasEstucturas de Datosde Datos PPááginagina 5050 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia Encapsulación Oculta los detalles de la implementación de una clase. Fuerza al usuario a usar la interfaz pública para accesar los datos. Facilita el mantenimiento del código y la detección de errores. MiFecha - dia - mes - anno + getDia() + getMes() + getAnno() + setDia(int) + setMes(int) + setAnno(int) - validarDia(int)
  51. 51. EstucturasEstucturas de Datosde Datos PPááginagina 5151 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia Pase de parámetros a métodos • El lenguaje Java sólo permite pasar argumentos por valor. • Cuando una instancia de un objeto es pasada como argumento a un método, el valor del argumento es una referencia al objeto. • El contenido del objeto puede ser cambiado en el método invocado, pero no la referencia.
  52. 52. EstucturasEstucturas de Datosde Datos PPááginagina 5252 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia El operador de referencia this • Sirve para referenciar atributos locales y métodos miembros dentro de metodos o constructores locales. • La palabra reservada this distingue una variable de un método o constructor de una instancia de una variable de la clase. • Sirve también para pasar el objeto actual como un parámetro a otro método o constructor. Class MiFecha { int dia = 1; int mes = 1; int anno = 2000; public MiFecha(int dia, int mes, int anno){ this.dia = dia; this.mes = mes; this.anno = anno; } public MiFecha(MiFecha fecha){ this.dia = fecha.getDia(); this.mes = fecha.getMes(); this.anno = fecha.getAnno(); } ... }
  53. 53. EstucturasEstucturas de Datosde Datos PPááginagina 5353 Unidad I: Operaciones BUnidad I: Operaciones Báásicas de Entrada y Salidasicas de Entrada y Salida Entrada/Salida por Consola • System.out permite escribir a la “salida estándar” •Declaración: public static final java.io.PrintStream out • System.in permite leer desde la “entrada estándar” •Declaración: public static final java.io.InputStream in • System.err referencia a la salida de errores •Declaración: public static final java.io.PrintStream err
  54. 54. EstucturasEstucturas de Datosde Datos PPááginagina 5454 Unidad I: Operaciones BUnidad I: Operaciones Báásicas de Entrada y Salidasicas de Entrada y Salida Entrada/Salida por Consola import java.io.*; public class Consola{ public static void main(String[] args){ //Crea un bufer de lectura para leer cada linea desde el teclado. InputStreamReader isr = new InputStreamReader(System.in); BufferedReader teclado = new BufferedReader(isr); //Variable auxiliar para leer desde el teclado String cadLeida; System.out.println(“Introduzca la base: “); cadLeida = teclado.readLine(); int x = Integer.parseInt(cadLeida); System.out.println(“Introduzca el exponente: “); cadLeida = teclado.readLine(); int y = Integer.parseInt(cadLeida); System.out.println(“x^y = “ + Math.pow(x,y)); } }
  55. 55. EstucturasEstucturas de Datosde Datos PPááginagina 5555 Unidad I: Operaciones BUnidad I: Operaciones Báásicas de Entrada y Salidasicas de Entrada y Salida Entrada/Salida Interfaz Gráfica (javax.swing.JOptionPane) import javax.swing.JOptionPane; // importa la clase JOptionPane Public class InterfazGrafica{ public static void main(String[] args){ String cadena1, cadena2; int x, y, potencia; //lee la base y el exponente cadena1 = JOptionPane.showInputDialog( “Introduzca la base:" ); cadena2 = JOptionPane.showInputDialog( “Introduzca el exponente:" ); //se convierten los valores y se calcula el resultado x = Integer.parseInt(cadena1); y = Integer.parseInt(cadena2); potencia = Math.pow(x,y); //despliega el resultado JOptionPane.showMessageDialog(null, “x^y = " + potencia, "Resultado", JOptionPane.PLAIN_MESSAGE ); } }
  56. 56. EstucturasEstucturas de Datosde Datos PPááginagina 5656 Unidad I: Entornos de DesarrolloUnidad I: Entornos de Desarrollo •Visual Café •Visual J++ •Visual Age for Java •Jbuilder •Java WorkShop •JavaStudio •.... Y cientos más Entornos de Desarrollo (IDE’s) • La mayoría incluyen su propio compilador y máquina virtual Java: Esto puede causar problemas con los cambios de versiones y librerías. • Sun controla la especificación de Java y lanza nuevas versiones del JDK (idéntico para varias plataformas).
  57. 57. EstucturasEstucturas de Datosde Datos PPááginagina 5757 Unidad I: MUnidad I: Máás Informacis Informacióón...n... •Página Principal de Java: •http://java.sun.com •Tutoriales: –ftp://herodes.redes.upv.es/lar/Java/Jtutotorial/index.html –http://www.fie.us.es/info/internet/JAVA/ –ftp://herodes.redes.upv.es/lar/Java/ThinkInJava.pdf –http://java.sun.com •Aplicaciones: –http://www.javashareware.com –http://www.acme.com
  58. 58. EstucturasEstucturas de Datosde Datos PPááginagina 5858 Tema 2: AutoevaluaciTema 2: Autoevaluacióónn 1. Menciona las principales características de Java 2. Menciona las ventajas de Java sobre C++ o lenguajes similares 3. Por qué Java puede correr en cualquier plataforma sin modificar o recompilar el código ? 4. Qué es un paquete ? 5. De qué clase se derivan implícitamente una clase en Java ? 6. Para qué se emplea this ? 7. Qué es una interface ? 8. Investiga la jerarquía de clases de Java. 9. Cuál es la estructura general de un programa en Java? 10. Cuáles son los tipos de variables con los que cuenta Java ? 11. Cuáles son los tipos primitivos de Java ? 12. En que difiere el tipo char de Java del de otros lenguajes ? 13. Cuál es el alcance de las variables en Java ? 14. Cuál es la precedencia de operadores en Java? 15. Cuál es la diferencia entre los operadores && y &? 16. Cuáles son los tipos de comentarios que maneja Java? 17. Explica como se hace el manejo de errores en Java 18. Cuál es la diferencia entre break y continue? 19. Diferencia entre break y continue y sus contrapartes etiquetadas? 20. Cuál es la estructura general de un programa en Java?
  59. 59. EstucturasEstucturas de Datosde Datos PPááginagina 5959 Tema 2: AutoevaluaciTema 2: Autoevaluacióónn package Conversion.*; import java.io; public class Conversion { private static void main (String args){ InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br= new BufferedReader(); String cadena; try { System.out.println("Indique el número de metros y pulse RETURN") cadena = br.readline(); double d = new Double(cadena); double metros = d.doubleValue(); double pulgadas = metros * 39,27; double pies = pulgadas / 12; pulgadas = pulgadas % 12; pies = pies - pulgadas / 12; System.out.println("Conversión de metros en pies y pulgadas"); System.out.println(metros+" metros son "+pies+" pies y "pulgadas+" pulgadas"); } catch(Exception e){ System.out.println("Cualquier tipo de error");} } } Problema 1: Verificar el siguiente programa identificando los errores de sintaxis

×