INF 473 Desarrollo de Aplicaciones en Java Sección V Otras características de Java Prof. José Miguel Rubio [email protected] [email protected] PUCV Marzo 2008 1 Paquetes Conjunto de clases definidas en un directorio, se puede entender como un contenedor de clases. Se almacenan en modo jerárquico y se exportan en las clases que necesiten utilizar las clases definidas en el paquete. Cada clase pertenece a un paquete. Si una clase no se asocia a ningún paquete, java la incluye en el paquete por defecto DefaultPackage 2 Paquetes Definición Para definir un paquete se utiliza la palabra reservada package. Sintaxis package nombre_paquete; Esta sentencia debe ir en la parte superior del archivo, antes de la importación de paquetes y definición de clase. 3 Paquetes Ejemplo 4 Paquetes Los clases pertenecientes a un paquete deben estar almacenados en el directorio respectivo. En el ejemplo, el archivo calculadora.class debe estar dentro del directorio escritorio. 5 Paquetes Se puede crear una jerarquía de clases. Sintaxis package [nombre_paquete1]. [nombre_paquete2].[etc]; Ejemplo En este caso calculadora.class debe estar dentro del directorio elementos el cual debe estar dentro del directorio escritorio. 6 Paquetes (Ejemplo) Clases Lápiz y Bolígrafo pertenecientes al paquete escritorio 7 Paquetes Acceso a paquetes Para acceder a los paquetes creados se utiliza la palabra reservada import. Sintaxis Para importar todas las clases del paquete import nombre_paquete.*; Ejemplo: import escritorio.*; Para importar una clase del paquete import nombre_paquete.clase; Ejemplo: import escritorio.Lapiz; 8 Paquetes Acceso a paquetes (Ejemplo) 9 Paquetes Control de acceso Las clases, métodos, atributos y constructores deben ser declarados como públicos (public) para poder ser accedidos por otras clases que no pertenezcan al paquete, de lo contrario solo podrán ser accedidos en cualquier clase perteneciente al paquete. 10 Paquetes Control de acceso de los atributos y métodos de las clases (RESUMEN) 11 Manejo de Excepciones Una excepción es un error que ocurre en tiempo de ejecución. Java proporciona un sistema de manejo de excepciones Ventaja: Evita caída de los programas. Escribir código que permita manejar ese error y continuar (si se estima necesario) con la ejecución del programa. 12 Manejo de Excepciones El manejo de excepciones en Java es dirigido por cinco palabras clave: try: bloque para capturar excepciones catch: manejador para capturar excepciones de los bloques try throw: expresión para levantar excepciones throws: indica las excepciones que puede elevar un método finally: bloque de código a ser ejecutado luego de salir de try 13 Manejo de Excepciones El núcleo de manejo de excepciones son los bloques try y catch. Estos bloques deben ir juntos, no hay bloque catch sin un try. Pueden existir mas de un bloque catch para un try 14 Manejo de Excepciones Ejemplo excepción 15 Manejo de Excepciones Ejemplo manejo de excepción 16 Manejo de Excepciones Proceso: si ocurre una excepción dentro de un bloque try esta es lanzada y atrapada por un bloque catch el cual permite manejar la excepción. Finalmente cualquier código que deba ser ejecutado después de haber salido de un bloque try se coloca en un bloque finally. Si no es lanzada una excepción dentro de un bloque try, este termina normalmente y todas las sentencias catch son omitidas. Para lanzar manualmente una excepción se utiliza throw 17 Manejo de Excepciones Algunos Ejemplos de excepciones ArrayIndexOutOfBoundsException: desbordamiento en arreglos IOException: error de E/S ArithmeticException: error en operación aritmética Etc. Las excepciones son clases que derivan de la super clase Throwable, por lo tanto si no se conoce que excepcion fue lanzada se debe utilizar esta 18 excepcion: catch(Throwable e) Manejo de Excepciones Uso de throws Todo método en el que se puede producir una o mas tipos de excepciones (y que no utiliza los bloques try/catch/ finally para tratarlos) debe declararlos en el encabezado del método por medio de la palabra throws. Si un bloque puede lanzar varias excepciones, se colocan después de throws separadas por comas ejemplo: 19 Manejo de Excepciones Uso de throw throw sirve para lanzar excepciones manualmente, y se usa principalmente cuando se crean excepciones propias. sintaxis (dentro de un bloque try) throw new Nombre_excepcion Excepciones propias Se pueden crear excepciones propias para utilizar en los programas, para ello se deben crear clases que deriven de la superclase Exception 20 Manejo de Excepciones Ejemplo (clase propia): 21 Manejo de Excepciones Ejemplo (utilización de clase propia): 22