©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter 8 - 1 Chapter 8 Excepciones y afirmaciones o invariantes.

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 13 Ing. Ronald Criollo.
Advertisements

Java nos ofrece System.out para escribir en pantalla, pero también tenemos System.in para leer. System.in es un objeto de una clase de java que se llama.
Ayudantía Pre-Actividad 5 Multimedios. Ayudantía Pre-Actividad 5 (1) creación de varias clases, y composición (2) manejo de threads (3) manejo de excepciones.
Exceptions y Assertions Introducción a la terminología Bloques: try, catch Uso de finally Bloques: try, catch, finally Categorías de Exceptions Excepciones.
Curso de java básico (scjp)
Archivos de Texto. Introducción Los archivos son una secuencia de bits que se guarda en el disco duro. La ventaja de utilizar archivos es que los datos.
Introducción a la programación en JAVA
EXCEPCIONES UNIDAD 5.
Programación Interactiva Manejo de Excepciones
Instrucciones y excepciones
Manejo de errores y excepciones
Programación en Java Instructor:.
MANEJO DE EXCEPCIONES EN C++
Excepciones Las excepciones son señales (en forma de objeto) que se generan en ejecución en casos de errores, para que puedan ser gestionadas en el programa.
Arquitectura CLARO-TECNOTREE CAPITULO 4: Excepciones
Capitulo 4 Excepciones.
Siguiente Excepciones Introducción. AnteriorSiguiente Definición Una excepción es un evento que ocurre durante la ejecución de un programa que desestabiliza.
Informática II Prof. Dr. Gustavo Patiño MJ
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
1.2 Sintaxis del lenguaje Java.
UNIVERSIDAD LATINA (UNILA)
La estructura básica de los programas en java, algo a tener en cuenta y que debemos recordar siempre es el archivo debe llevar el nombre de la clase con.
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
Control de excepciones
Manejo de excepciones en Java
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
INSTITUTO TECNOLOGICO DE TEHUACAN Ingeniería en sistemas computacionales Curso de apoyo a la titulación EXCEPCIONES EN JAVA Diciembre de 2008.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Input – Scanner y Cajas de diálogo
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter N - 1 Capitulo 12 Archivos de Ingreso y Salida.
1 TEMA 5. Seguridad en Java 1.Introducción a los Controladores de Seguridad 2.Decidir qué Métodos Sobreescribir del SecurityManager 3.Escribir un Controlador.
Semana 5 Subprogramas..
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
El lenguaje de programación Java
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Capítulo 7 Definindo sus propias clases Parte 2.
Programación con Assertions
Conversión cadena a número
Tema 11: Excepciones Antonio J. Sierra.
Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.
Computación II Unidad X Manejo de Excepciones. Presentación de la Unidad Objetivos: –Saber manejar situaciones inesperadas dentro de un programa –Comprender.
USO DE EXCEPCIONES EN JAVA LSC. Natalia Rodríguez Castellón.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CUATRO CONTROL DE FLUJOS, EXCEPCIONES Y ASERSIONES.
Control de errores visual basic
Módulo 8: Manejo de Errores y Excepciones
Manejo de excepciones en Java ELO329: Diseño y Programación Orientados a Objetos Agustín J. González.
Programación Orientada a Objetos Unidad 4 Excepciones Universidad de Chile Departamento de Ciencias de la Computación.
Excepciones Unidad 5.
1 Manejo de Excepciones y otros Agustín J. González ELO-329.
Programación Interactiva Manejo de Excepciones Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle.
Manejo de errores: Excepciones en Java
Programación orientada a objetos Capítulo 12 Manejo de errores.
Tratamiento de excepciones
Manejo de errores: Excepciones en Java ELO329: Diseño y Programación Orientados a Objetos.
Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4.
MANEJO DE EXCEPCIONES. 21/11/2005 E.T.S de Ingenieros de Telecomunicacion.2 Índice ¿Qué es una excepción? Tipos de situaciones. Manejo de excepciones.
¿Qué son? – tipos – manejo - ejemplos
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2009.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Desarrollador Profesional de Juegos Programación III Unidad I Capturar Excepciones.
ECOM-6030 CAPÍTULO 7 EXCEPTION HANDLING Prof. Nelliud D. Torres © - Derechos Reservados.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Excepciones Diseño y manejo de excepciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 5 Versión
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Introducción a programación web Martin Esses. En las presentaciones anteriores, vimos como enviar datos a un controlador usando POST y como generar formularios.
Transcripción de la presentación:

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 8 Excepciones y afirmaciones o invariantes (Exceptions and Assertions)

Objetivos –Mejorar la confiabilidad del código incorporando –Escribir métodos para propagar excepciones. –Implementar los bloques try-catch para atrapar y manejar las excepciones. –Escribir clases de excepción programadas. –Diferenciar las excepciones de tiempo de compilación y en tiempo de corrida

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Definición Cdo un programa viola las restricciones semánticas del lenguaje, se produce un error y la maq virtual comunica este hecho al programa mediante una excepción. Muchas clases de errores pueden provocar una excepción, desbordamiento de mem, disco estropeado, intento de dividir por 0, acceder a un vector fuera de los límites. Una excepción es un evento que se produce durante la ejecución de un programa, que interrumpe el flujo normal de las instrucciones del mismo.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Se atrapa la excepción si una vez lanzada se interrumpe el flujo normal de ejecución y se ejecuta la rutina de manejo de excepciones. Cdo se crea una excepción la JVM recorre la pila de llamadas de métodos en busca de alguno que sea capaz de tratar la clase de expepción lanzada. Si ninguno de los mét de la pila pueden la JVM muestra un mensaje de error y termina el programa. El uso de excepciones permite separar el código regular del manejo de las excepciones, propagar los errores al método invocante, agrupar los errores por tipo.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Manejo de las excepciones Cuando se produce un error dentro de un método, éste crea un objeto exception Este contine la info sobre el error, tipo y el estado del programa cuando ocurrió. Lanzar una excepción es crear un objeto exception, tambien se puede lanzar explícitamente mediante la instrucción throw Despues que el método crea la excepción, el sistema busca si hay una forma de manejarla. La búsqueda se realiza en la pila de llamadas que se realizaron hasta llegar al método que lanzó la excepción (call stack)

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter call stack y búsqueda del manejador

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Ej. Excepciones no capturadas String inputStr; int age; inputStr = JOptionPane.showInputDialog(null, "Age:"); age = Integer.parseInt(inputStr); java.lang.NumberFormatException: ten at java.lang.Integer.parseInt(Integer.java:405) at java.lang.Integer.parseInt(Integer.java:454) at Ch8Sample1.main(Ch8Sample1.java:20) Mensaje de Error ingreso inválido ¿Que ocurre si el usuario ingresa un valor no numérico?

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Excepción atrapada inputStr = JOptionPane.showInputDialog(null, "Age:"); try { age = Integer.parseInt(inputStr); } catch (NumberFormatException e){ //tipo de excepcion que se captura JOptionPane.showMessageDialog(null, "’" + inputStr + "‘ no es válida\n" + “ingrese sólo dígitos"); } trycatch

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Flujo de control try-catch

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Obteniendo Información Hay dos métodos que podemos llamar para obtener información sobre una excepción: –getMessage –printStackTrace try {... } catch (NumberFormatException e){ System.out.println(e.getMessage()); System.out.println(e.printStackTrace()); }

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Uso de ciclos para ingreso de inf while (true){ inputStr = JOptionPane.showInputDialog(null, prompt); try { age=Integer.parseInt(inputStr); return age; } catch (NumberFormatException e) { JOptionPane.showMessageDialog (null, “ valor ingresado “ + inputStr + “es enválido /n” + “Sólo ingrese nros”); }

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Múltiples bloques catch Una sentencia try-catch puede incluir varios bloques de captura, uno para c/ tipo de excepción. try {... age = Integer.parseInt(inputStr);... val = cal.get(id); //cal is a GregorianCalendar... } catch (NumberFormatException e){... } catch (ArrayIndexOutOfBoundsException e){... }

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Múltiples atrapadores while (true){ inputStr = JOptionPane.showInputDialog(null, prompt); try { age=Integer.parseInt(inputStr); if (age < 0) { throw new Exception (“No ingrese valores negativos” ); } return age; } catch (NumberFormatException e) { JOptionPane.showMessageDialog (null, “ valor ingresado “ + inputStr + “es inválido /n” + “Sólo ingrese nros”); } catch (Exception e){ JOptionPane.showMessageDialog (null, “Error: “ + e.getMessage()); }

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Flujo de control con Múltiples catch

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter El Bloque finally Hay situaciones en las cuales necesitamos tomar ciertas acciones sin importar si se produce una excepción o no. Las sentencias que deben ejecutarse siempre se ponen en el bloque final. Ej liberar recursos, arch, etc

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Multiples atrapadores - Se puede crear una excepción usando la sentencia throw sintaxis : throw dde objet debe se un objeto de la clase Throwable o subclase de la misma. -Cdo creamos la instancia de la clase Exception le pasamos una cadena que describe el error -La excepción lanzada es atrapada por su correspondiente catch -La lista de los atrapadores de excepción deben ir de lo particular a lo genérico pues sólo se ejecuta el primer catch

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Fuljo de control try-catch-finally

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Propagación de Excepciones En vez de capturar una excepción a través de una sentencia try-catch statement, podemos propagarla hacia el método llamador. En este caso la cabecera del método debe incluir la palabra reservada throws. public int getAge( ) throws NumberFormatException {... int age = Integer.parseInt(inputStr);... return age; }

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Propagando Excepciones Podemos escribir un método que propague la excepción directamente Para crear excepciones, def por el usuario, se usa throw para crear una nueva instancia de la excepción. La cabecera del método debe incluir la palabra throws. public void doWork(int num) throws Exception {... if (num != val) throw new Exception("Invalid val");... }

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Método lanzador de excepciones Cuando un método puede propagar una excepción, directa o indirectamente, se llama lanzador de excepción Cada excepción lanzada puede ser de uno de los dos tipos, - captada (catcher) - propagada

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Tipos de lanzadores de Excepciones Un atrapador de excepciones es un lanzador de excepciones que incluye un bloque catch que maneja la excepción lanzada, es decir la captura.. Un propagador de excepciones no contine ningún bloque cath que coincida con esa excepción Un método puede atrapar unas excepciones y propagar otras.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Ej de secuencia de llamados Nota: output == System.out

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Tipos de Excepciones Todos los errores lanzados son casos de la clase Throwable o de sus subclases Los errores serios son representados por instancias de la clase Error o de sus subclasses, fallo de sistema en general no se pueden manejar, fin de conexión, etc. Las excepciones que las aplicaciones pueden manejar se representan con instancias de la clase Exception o por subclases de la misma

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Como emplear excepciones ej de Fraction Recordemos el método para obtener el denom de la clase Fraction, este termina abruptamente la ejecución. public void set Denominator (int denom){ if (denom == 0){ System.err.println(“Error fatal”); System.exit(1); } denominator = denom; }

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Empleando excepciones en setDenominator de Fraction public void setDenominator (int denom) throws IllegalArgumentException { if (denom == 0) { throw new IllegalArgumentException( “Denominador no puede ser cero”); } denominator = denom; }

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Jerarquía de Throwable Hay más de 60 clases in la jerarquía

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Checked vs. Runtime Hay dos tipos de excepciones: –Verificadas, se verifican en tiempo de compilación –No Verificadas: Todas las demás, se detectan sólo al momento de ejecutarse el programa

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Diferentes Reglas de Manejo Cuando llamamos a un método que puede lanzar una excepción en tiempo de compilación se debe manejar o progagar : –Usar una sentencia try-catch y poner la llamada en el bloque try block, o –Modificar la cabecera del método para incluir la cláusula throws apropiada Cuando llamamos a un método que puede lanzar una excepción en tiempo de ejecución, es opcional el uso de la sentencia try-catch o modificar el método para o incluir la cláusula throws.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Manejo de excepciones en tiempo de compilación (Checked Exceptions) Manejar Propagar

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Manejando Excepciones en tiempo de ejecución

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Excepciones definidas por el programador Se puede usar el método getMessage de las clases estándard para obtener el mensaje de error Definiendo nuestras propias excepciones se puede obtener más información –Ej podemos definir la excepción FueraDeStock (OutOfStock) e incluir información tal como cuando items hay que ordenar ExcepcionIngresoEdad (AgeInputException) se define como una subclase de Exception e incluye métodos públicos para acceder a: limite máximo y mínimo y la edad ingresada por el usuario

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Excepciones declaradas por el usuario Ej AgeInputVer4.java le permite al cliente que usará una clase especificar los limites AgeInputVer4 input = new AgeInputVer4 (10,20); El constructor por defecto podria poner los limites inferior y superior a 0, 99 Cómo responde getAge cuando detecta un ingreso por fuera del rango? En vez de capturarlo deberia propagarlo al método llamador. La captura del error por ingreso de NumberFormatException aun se debe manejar pues no depende del uso que el cliente hace de la clase

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Ej excepción pasada al cliente getAge public int getAge (String prompt) throws Exception { String inputStr; int age; while (true) { inputStr = JOptionPane.showInputDialog(null, prompt); try { age = Integer.parseInt (inputStr); if (age upperBound) { throw new Exception (“Ingreso fuera de los lim”); } // excepcion pasada a la clase cliente, no atrapada return age; } cath (NumberFormatException e){ JOptionPane.showMessageDialog( null, “ingreso inválido, ingrese sólo digitos” ); } } }

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Excepciones definidas por el programador Para proveer a la clase cliente de información útil cuando se produce una excepción, definir una nueva clase excepción. Hacer que la misma sea subclase de la clase Exception. Ej. Definir una clase AgeInputException como subclase de la clase Exception. Agregemos la infomación útil para el usuario, límite superior, lim inferior, valor ingresado, además del mensaje. Definir métodos públicos para acceder a sus valores. La nueva clase será igual a la anterior con la diferencia que el método getAge dispara una excepción AgeInputException.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Resumen Un prog puede usar excepciones para indicar la ocurrencia de un error Para propagar una excepción se usa throws y un objeto descendiente de Throwable para informar sobre la excepción que se ha producido. Un método puede propagar o atrapar una excepción. Las excepciones verificadas (compilación) deben incluir una cláusula throws Un programa atrapa excepciones empleando try catch finally. El bloque try contiene el código que puede generar una excepción. El catch el código que maneja una excepción en particular. Un try debe tener al menos un catch o un finally y puede tener varios catch. La clase de objeto excepción indica el tipo de excepción lanzada. El objeto puede contener infomación adicional sobre el error, incluyendo mensajes de error.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Afirmaciones La sintáxis para una afirmación (assert) es assert ; donde representa una condición que debe ser verdadera si el código está trabajando correctamente. Si la expresión es falsa, un error AssertionError ( subclase de Error) es lanzada.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Ej. Uso #1 public double deposit(double amount) { double oldBalance = balance; balance += amount; assert balance > oldBalance; } public double withdraw(double amount) { double oldBalance = balance; balance -= amount; assert balance < oldBalance; }

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Segunda forma La sentencia tambien tomar la forma: assert : ;

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Ej Uso #2 public double deposit(double amount) { double oldBalance = balance; balance += amount; assert balance > oldBalance : "Serious Error – balance did not " + " increase after deposit"; }

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Compilando Programas con Afirmaciones Assertions Antes de Java 2 SDK 1.4, la palabra assert es un identificador válido no reservado. Desde la version 1.4 la palabra assert se continua tomando como identificador válido para asegurar. Para habilirar el mecanismo de assertion compilar el código usando –source 1.4 javac –source 1.4

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Correr programas con Afirmaciones Para correr programas con afirmaciones habilitadas usar: java –ea Si no se pone la opción –ea option el programa se ejecuta sin verificar las afirmaciones.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Usos de Afirmaciones Precondición verifica que una condición sea verdadera antes de la ejecución de un método. Postcondición verifica que una condición sea verdadera despues de la ejecución de un método. Invariante del flujo de control (control-flow invariant) se utiliza para afirmar que el control debe fluir a casos particulares.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Problema Implementar un Sistema de entrada sin llaves que pide tres datos: el nombre de residente, el número del espacio, y una contraseña. La contraseña es usa secuencia de 4 a 8 caracteres y es única para cada residente Si todo coincide, el sistema desbloquea y se abre la puerta No puede haber dos residentes con el mismo nombre Usaremos las clasesDoor and Dorm. Se pueden usar datos del ejemplo samplelist.dat para el desarrollo

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Plan General Tareas: –Debemos primero ver de que son capaces las clases Dorm y Door. –Tambien, para implementar la clase correctamente, necesitamos la especificacion de la clase Resident. Ademas de las clases dadas de ayuda y de la clase Resident, necesitamos diseñar otras clases para esta aplicación. –Como el numero de clases puede aumentar considerablemente, deben planificarse de manera apropiada.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Documento de Diseño ClasePropósito Ch8EntranceMonitorObjeto de control que maneja a los otros objetos del programa. Contiene al método main. DoorClase predefinida que simula la apertura de la puerta (door). DormClase predefinida que mantiene la lista de objetos Resident. ResidentClase que mantiene la informacion de un individuo residente. Debemos escribirla. InputHandlerClase de interfase de usuario para manejar las rutinas de ingreso de informacion. JOptionPaneClase estandard para mostrar mensajes.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Relación de Clases DoorJOptionPane Resident InputFrameCh8EntranceMonitor Dorm (main class)

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Pasos de Desarrollo 1.Definir la clase Resident y explorar la clase Dorm. Comenzar con un esqueleto para probar la clase Resident. 2.Definir la clase InputHandler. Modificar la clase de control si es necesario. 3.Finalizar el código haciendo mejoras y limpiando los mensajes no apropiados.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter paso 1 Deseño Explorar la clase Dorm Implementar la clase Resident Comenzar con el esqueleto de la clase principal

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Paso 1 Código Directory: Chapter8/Step1 Source Files: Resident.java Ch8EntranceMonitor.java Directory: Chapter8/Step1 Source Files: Resident.java Ch8EntranceMonitor.java

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Paso 1 prueba El objetivo es verificar que la clase Dorm class se usa correctamente para abrir un archivo y obtener el contenido del mismo Para esto se necesita el arch que contiene la información de los residentes: testfile.dat. –Este contiene informacion de 4 residentes. –Este fue creado ejecutando SampleCreateResidentFile, que puede modificarse para obtener otros datos de prueba

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Paso 2 Diseño Diseñar e implementar la clase InputHandler Modificar la clase principal para incorporar las nuevas clases

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Paso 2 Código Directory: Chapter8/Step2 Source Files: Resident.java Ch8EntranceMonitor.java InputHandler.java Directory: Chapter8/Step2 Source Files: Resident.java Ch8EntranceMonitor.java InputHandler.java

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Paso 2 Prueba El objetivo es verificar el correcto comportamiento de InputHandler. Debemos probar ambos casos éxito y fracaso. –Debemos verificar que la puerta se abre cuando la información ingresada es válida. –y Tambien que muestre un mensaje de error cuando el ingreso es incorrecto. Se puede probar ingresando nombres inexistentes, nombre correcto pero clave errónea, no entrar información, etc

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Paso 3: Finalizar Posibles extensiones –Mejorar la interfase del usuario haciendo una ventana para ingresar las tres datos de cada residente. –Terminanar el programa cuando se ingresa un código en especial.