APO2 - Presentacion nivel 7

Embed Size (px)

DESCRIPTION

Esta es la presentación del Nivel 7 del curso "ISIS-1205 Algorítmia y Programación por Objetos 2" (APO2) de la Universidad de los Andes, Bogotá, Colombia.

Citation preview

  • 1. NIVEL 7BIENVENIDOS A ALGORTMICA Y PROGRAMACIN 2 (APO 2) Mario Jos Villamizar Cano [email protected] Oficina ML-637http://sistemas.uniandes.edu.co/~mj.villamizar24/dokuwiki/doku.phpGrupo de Tecnologas de Informacin y Comunicacin (COMIT) Departamento de Ingeniera de Sistemas y Computacin Universidad de los Andes, Bogot D.C., Colombia

2. NIVEL 7 REDES SOCIALES [email protected]://twitter.com/mariocloudhttp://linkedin.com/in/mariojosevillamizarcano 3. NIVEL 7PROCESO PARA SOLUCIONAR UN PROBLEMA 4. NIVEL 7ETAPAS DEL PROCESO DE SOLUCIN A UN PROBLEMA 5. NIVEL 7ANLISIS DEL PROBLEMAEntender el problema del cliente y qu es lo que se quiere hacer.La salida de esta etapa se denomina especificacin del problema. 6. NIVEL 7SOLUCIN A UN PROBLEMA 7. NIVEL 7NIVEL 7 BSQUEDA, ORDENAMIENTO Y PRUEBAS AUTOMTICASCaso de estudio 1 Un traductor de idiomas Invariantes de una clase Pruebas automticasCaso de estudio 2 Un manejador de muestras Algoritmos de ordenamiento (Seleccin, Intercambio, Insercin) Algoritmos de bsqueda (Bsqueda secuencial y binaria) Generacin de datos aleatorios Medicin de tiemposCaso de estudio 3 Una exposicin canina Comparacin de objetos por mltiples criterios Ordenamiento y bsqueda de objetos Manejo de grupos de valores en la interfaz grfica de usuario 8. NIVEL 7CASOS DE ESTUDIOCaso de estudio 1: Un traductor de idiomas 9. NIVEL 7 CASOS DE ESTUDIOCaso de estudio 2: Un manejador de muestras 10. NIVEL 7CASOS DE ESTUDIOCaso de estudio 3: Una exposicin canina 11. NIVEL 7HOJAS DE TRABAJOHoja de trabajo 1: Bolsa de Empleo 12. NIVEL 7HOJAS DE TRABAJOHoja de trabajo 2: Venta de Vehculos 13. NIVEL 7 HOJAS DE TRABAJOHoja de trabajo 3: Rompecabezas 14. NIVEL 7CASO DE ESTUDIO 1 UN TRADUCTOR DE IDIOMASInterfaz Grfica 15. NIVEL 7 CASO DE ESTUDIO 1 UN TRADUCTOR DE IDIOMASRequerimientos funcionales. 16. NIVEL 7 CASO DE ESTUDIO 1 UN TRADUCTOR DE IDIOMASRequerimientos funcionales. 17. NIVEL 7 CASO DE ESTUDIO 1 UN TRADUCTOR DE IDIOMASModelo del Mundo 18. NIVEL 7CASO DE ESTUDIO 1 UN TRADUCTOR DE IDIOMASModelo de la Interfaz 19. NIVEL 7 CASO DE ESTUDIO 1 UN TRADUCTOR DE IDIOMASModelo de las Pruebas 20. NIVEL 7 CASO DE ESTUDIO 1 UN TRADUCTOR DE IDIOMASDnde quedaron plasmadas las siguientes restricciones delmundo?No hay dos palabras en espaol repetidas en ningn diccionario.No hay dos palabras en espaol con las misma traduccin en ningndiccionario.Las palabra de cada traduccin no puede ser nula ni una cadena vaca.Las traduccin de cada traduccin no puede ser nula ni una cadenavaca.Todos los traductores deben estar inicializados. Si la clase Traductor tiene 10 mtodos en todos ellos debera haberuna precondicin para validar estas propiedades de los diccionarios.Es una prdida de tiempo debido a documentacin y codificacin.Adems es ineficiente desde el punto de vista de tiempos de respuesta. 21. NIVEL 7 INVARIANTES DE UNA CLASEInvariante de una clase: Elemento fundamental para construirprogramas correctos.Sirven parta verificar que la informacin almacenada en los objetos delmundo es coherente con los requerimientos funcionales y las reglas orestricciones del negocio.Es un conjunto de aserciones (afirmaciones) que indican las propiedadesque en todo momento deben cumplir las instancias de una clase.Pueden utilizarse como suposiciones dentro de los mtodos sinnecesidad de que aparezcan en las precondiciones y sin necesidad deverificarlos.Solo se utilizan durante el desarrollo del programa no en unentorno de produccin, es decir, cuando ya la debe utilizar elusuario final. 22. NIVEL 7 INVARIANTES DE UNA CLASEEl Invariante de una clase est compuesto por: Restricciones sobre los valores que pueden tomar los atributos.Restricciones sobre los valores que pueden tomar los objetos hacialos cuales hay una asociacin.Relaciones entre los atributos y/o los objetos con los cuales serelaciona. 23. NIVEL 7 NUEVA NOCIN DE CONTRATOTodo mtodo (que no sea un constructor) puede suponer al comienzo desu ejecucin que se cumplen todas las afirmaciones que aparecen en elinvariante de la clase y en la precondicin del contrato, y se comprometea que despus de haber sido ejecutado sobre un objeto, este cumpletodas las afirmaciones del invariante y de la postcondicin. 24. NIVEL 7ASERCIONES DE LA CLASE TRADUCCONNo hay dos palabras en espaol repetidas en ningn diccionario.No hay dos palabras en espaol con las misma traduccin en ningndiccionario.La palabra de cada traduccin no puede ser nula ni una cadena vaca.La traduccin de cada traduccin no puede ser nula ni una cadenavaca.Todos los traductores deben estar inicializados.palabra != null!palabra.equals( "" )traduccion != null!traduccion.equals( "" ) 25. NIVEL 7 ASERCIONES DE LA CLASE TRADUCTORTodos los traductores deben estar inicializados.No hay dos palabras en espaol repetidas en ningn diccionario.No hay dos palabras en espaol con las misma traduccin en ningndiccionario.espanolIngles != nullespanolFrances != nullespanolItaliano != nullEn el vector espanolIngles no hay palabras repetidasEn el vector espanolFrances no hay palabras repetidasEn el vector espanolItaliano no hay palabras repetidasEn el vector espanolIngles no hay traducciones repetidasEn el vector espanolFrances no hay traducciones repetidasEn el vector espanolItaliano no hay traducciones repetidas 26. NIVEL 7COMO IDENTIFICAR LAS ASERCIONES?Las aserciones (afirmaciones) se clasifican en dos tipos:Las que provienen del anlisis del problema:No hay dos palabras en espaol repetidas en ningn diccionario.No hay dos palabras en espaol con las misma traduccin en ningndiccionario.Las que provienen de decisiones del diseo:La palabra de cada traduccin no puede ser nula ni una cadena vaca.La traduccin de cada traduccin no puede ser nula ni una cadenavaca.Todos los traductores deben estar inicializados. 27. NIVEL 7CUL CLASE ES RESPONSABLE DE HACER LAS AFIRMACIONES?No hay dos palabras en espaol repetidas en ningn diccionario.No hay dos palabras en espaol con las misma traduccin en ningndiccionario.Todos los traductores deben estar inicializados.La palabra de cada traduccin no puede ser nula ni una cadena vaca.La traduccin de cada traduccin no puede ser nula ni una cadenavaca. 28. NIVEL 7 CMO DOCUMENTAR EL INVARIANTE DE UNA CLASE?Se debe documentar como parte del Javadoc que describe la clase: Clase TraductorCLatretsdsasadClase Traduccion 29. NIVEL 7INSTRUCCIN ASSERTLa instruccin assert de Java permite verificar una asercin (afirmacin),hay dos maneras de utilizar esta instruccin:assert expresin; Ejemplo: assert traduccion != null;En este caso la expresin a evaluar debe ser de tipo lgico. Si laexpresin da verdadero, el programa contina normalmente.Si da falso se lanza un tipo de excepcin denominada AssertionError quehace que el programa termine si nadie lo atrapa. assert expresin1 : expresion2;Ejemplo: assert traduccion != null : "traduccin invlida";Similar al caso anterior, solo que la expresin2 debe ser de tipo cadenade caracteres. En caso de que haya un error (cuando la expresin1 dafalse) se le asocia a la Excepcin el mensaje de la expresin2. 30. NIVEL 7 INSTRUCCIN ASSERTEjemplo:assert traduccion != null : "traduccin invlida";Similar a:if(traduccion == null){ throw new Exception("traduccin invlida");}Sin embargo, Java permite activar y desactivar la verificacin deaserciones de manera sencilla, por lo tanto cuando hay que entregar elprograma al usuario final, las verificaciones se pueden desactivarfcilmente (el computador no debe seguir haciendo verificacionesintiles). 31. NIVEL 7CMO VERIFICAR EL INVARIANTE DURANTE LA EJECUCIN?En cada clase que tenga invariante se debe verificar, para ello se escribeel siguiente mtodo:private void verificarInvariante()1. En este mtodo se utiliza la instruccin assert para cada asercin delinvariante. Si la expresin es simple colocamos la asercin directamentecomo instruccin de este mtodo. Si es compleja hay que desarrollar unmtodo privado de tipo lgico que haga la verificacin.2. Al final de cada Contructor y al final de cada mtodo modificador, sedebe agregar la llamada al mtodo verificarInvariante, ya que estosmtodos son los que cambian el estado del mundo. Recordemos quelas invariantes se utilizan para que el programador est seguro deque durante la ejecucin del programa, siempre hay estadoconsistente del mundo. 32. NIVEL 7CMO VERIFICAR EL INVARIANTE DURANTE LA EJECUCIN?Ejemplo para la clase Traduccion: 33. NIVEL 7CMO VERIFICAR EL INVARIANTE DURANTE LA EJECUCIN?Ejemplo para la clase Traduccion: 34. NIVEL 7CMO VERIFICAR EL INVARIANTE DURANTE LA EJECUCIN?Ejemplo para la clase Traductor: 35. NIVEL 7CMO VERIFICAR EL INVARIANTE DURANTE LA EJECUCIN?Ejemplo para la clase Traductor: 36. NIVEL 7 ACTIVAR Y DESACTIVAR LA VERIFICACIN DEL INVARIANTECuando durante la verificacin del invariante se detecta un error, elprograma se detiene, permitindole al programador detectar el mtododefectuoso.Por defecto durante la ejecucin de un programa NO se verifican lasinstrucciones assert.Para hacer que las instrucciones assert se evalen es necesario incluiren la llamada del programa la opcin ea (-enableassertions). Esto sehace desde eclipse, en la parte de parmetros para la mquina virtual:VM arguments. 37. NIVEL 7ACTIVAR Y DESACTIVAR LA VERIFICACIN DEL INVARIANTE En este ejemplo seactivala verificacin de instrucciones assert para todas las clases del programa. Tambin se puede habilitar la verificacin a nivel de clases y a nivel de paquetes. 38. NIVEL 7ACTIVAR Y DESACTIVAR LA VERIFICACIN DEL INVARIANTESolo para una clase del paquete mundoSolo para todas las clases del paquete mundo Todas las clases del programa, menos una del mundo 39. NIVEL 7 ASIGNACIN DE RESPONSABILIDADES E IMPLEMENTACIN DEMTODOSPara definir las responsabilidades de cada clase, particularmente en lorelacionado a mtodos y contratos se debe seguir una secuencia detareas:1. Aplicar la tcnica del experto para la descomposicin de los requerimientos, identificando los servicios (mtodos) que debe tener cada clase.2. Disear la signatura de los mtodos de cada clase.3. Escribir el contrato de los mtodos de cada clase.4. Hacer la declaracin e implementacin en Java de los mtodos. 40. NIVEL 7ASIGNACIN DE RESPONSABILIDADES E IMPLEMENTACIN DE MTODOS 41. NIVEL 7LLAMADO A LOS MTODOS DEL MUNDO DESDE LA INTERFAZ 42. NIVEL 7PREGUNTAS 43. NIVEL 7HOJA DE TRABAJO 44. NIVEL 7PRUEBAS UNITARIAS AUTOMTICASUna vez se han implementado todos los mtodos de las clases, esnecesarios probar que TODOS LOS MTODOS de CADA UNA DE LASCLASES DEL MUNDO cumplen efectivamente su contrato.Las pruebas unitarias automticas sirven para probar individualmentecada una de las clases.Si todas las clases cumplen con sus compromisos, el programa debefuncionar correctamente. Si algo falla, es posible saber cul clase fue yen cul mtodo ocurri el error.Las pruebas unitarias automticas son una excelente herramientapara garantizar programas de calidad. Deben verse como una ayudapara mejorar la calidad del programa y no como un esfuerzo extra. 45. NIVEL 7PRUEBAS UNITARIAS AUTOMTICASUna clase de prueba por cada una de las clases del modelo delmundo que queramos probar. Cada clase de prueba tendr unaasociacin hacia la clase verificada (sin pasar por la interfaz). 46. NIVEL 7PRUEBAS UNITARIAS AUTOMTICASLas clases de prueba se van a almacenaren unpaquete distinto(cupi2.uniandes.nombre_ejercicio.test).Las clases de prueba fsicamente van aquedar en la carpeta testsource.Hay dos elementos importantes al construirlas clases de prueba:1. Los escenarios.2. Los casos de prueba. 47. NIVEL 7ESCENARIOS DE PRUEBA ESCENARIO 1Un escenario es un espaolinglsESCENARIO 2objeto de la clase que se espaolingls perro dogquiere probar, que tiene ratn mousecasahouseun estado conocido pornosotros.vasoglassperro dog vinowine ratn mouseUnescenarioseespaol francsespaol francsrepresentaconun mesatable mesatablediagramadeobjetos lpiz crayon lpiz crayon(cualquier sintaxis vlida). libro livrelibro livreEn una clase de prueba azulbleu espaol italianose debe construir distintostelfonotlphonemesatavloescenarios que permitan lpiz rosseto espaol italianoprobarelcorrectofuncionamientodelmesatavloprograma. 48. NIVEL 7ESCENARIOS DE PRUEBAUn escenario siempreESCENARIO 2 - MALOdebe cumplir con elespaolinglsinvariante de la clase. casahouseSe deben construir perro dog ESCENARIO 1escenarios para todas lascasahomeposibles situaciones o espaol inglsespaol francsestados que pueda tenerespaolfrancsmesatableel modelo del mundo. espaolitaliano lpiz crayonUna vez definidos loslibro livreescenarios es necesarioespaol italianodefinir los casos de mesatavloprueba, para cada uno de lpiz rossetolos mtodos de la claseque queremos probar. 49. NIVEL 7CASOS DE PRUEBA ESCENARIO 1Un caso de prueba est asociado a: espaol ingls perro dog1. Un escenario. ratn mouse2. Un mtodo de la clase que se quiere probar. vasoglass3. Unos valores de entrada para los parmetros del mtodo. vinowine4. El resultado de ejecutar el mtodo al espaol francs escenario, con los valores de entrada.mesatable lpiz crayonTanto el escenario como los parmetros deben libro livrecumplir las precondiciones del mtodo que sequiere probar. azulBleu telfonotlphoneCada caso de prueba debe tener un objetivo espaol italianoespecfico (NO se deben definir al azar).mesatavlo 50. NIVEL 7 CASOS DE PRUEBAESCENARIO Nespaolinglsperro dog Caso de Prueba # 1 ratn mouse Objetivo: Probar el mtodo agregar espaol francs palabras de la clase TraductormesatableEspaol italianomesatavloCaso PruebaMtodoEscenario Parmetros ResultadoNo 1 ClaseTraductoragregarTraduccion() Esc. Npal = azul Verdadero. Se agreg la trad = bluepalabra al diccionario espaol idDestino = INGLES ingles.TraductoragregarTraduccion() Esc. Npal = ratnFalso. La palabra ratn ya trad = mickeyexiste en el diccionario idDestino = INGLES espaol.TraductoragregarTraduccion() Esc. Npal = azul Verdadero. Se agreg la trad = bleupalabra al diccionario espaol idDestino =francs. FRANCES 51. NIVEL 7 IMPLEMENTACIN DE LAS PRUEBAS UNITARIAS AUTOMTICASEs necesario construir la clase de pruebas que construya los escenariosy los casos de prueba de cada escenario. Dicha clase la llamaremosEjecutor de Pruebas.Esta clase ser la encargada de generar un reporte de los resultados deejecutar todos los casos de prueba a los escenarios de la clase que estsiendo verificada.En este curso utilizaremos el framework JUnit que facilita la creacin delas clases de prueba as como su ejecucin. 52. NIVEL 7 IMPLEMENTACIN DE LAS PRUEBAS UNITARIAS AUTOMTICASLas clases de prueba deben declararse con el encabezado extendsTestCase.Se deben importar las clases del paquete junit.framework.Los mtodos para construir los escenarios van a ser privados y van acomenzar con el prefijo setupEscenario seguido de un nmero. Estemtodo debe encargarse de crear una instancia del mundo e invocar losmtodos necesarios para llevarlo al estado definido en el diseo.Los mtodos que implementan los casos de prueba deben ser de tipovoid y su nombre debe comenzar con el prefijo test. 53. NIVEL 7 IMPLEMENTACIN DE LAS PRUEBAS UNITARIAS AUTOMTICASLas clases de prueba deben declararse con el encabezado extendsTestCase.Se deben importar las clases del paquete junit.framework.Los mtodos para construir los escenarios van a ser privados y van acomenzar con el prefijo setupEscenario seguido de un nmero. Estemtodo debe encargarse de crear una instancia del mundo e invocar losmtodos necesarios para llevarlo al estado definido en el diseo.Los mtodos que implementan los casos de prueba deben ser de tipovoid y su nombre debe comenzar con el prefijo test. 54. NIVEL 7CREACIN DE LA CLASE DE PRUEBA 55. NIVEL 7CREACIN DE UN ESCENARIO DE PRUEBAESCENARIO N espaolinglsperro dogratn mouse espaolfrancsmesatable Espaolitalianomesatavlo 56. NIVEL 7 IMPLEMENTACIN DE UN CASO DE PRUEBACaso PruebaMtodoEscenario Parmetros ResultadoNo Z ClaseTraductoragregarTraduccion() Esc. Npal = azul Verdadero. Se agreg la trad = bluepalabra al diccionario espaol idDestino = INGLES ingles.TraductoragregarTraduccion() Esc. Npal = ratnFalso. La palabra ratn ya trad = mickeyexiste en el diccionario idDestino = INGLES espaol.TraductoragregarTraduccion() Esc. Npal = azul Verdadero. Se agreg la trad = bleupalabra al diccionario espaol idDestino =francs. FRANCES 57. NIVEL 7IMPLEMENTACIN DE UN CASO DE PRUEBAEscenario NCaso dePrueba Z 58. NIVEL 7FUNCIONALIDADES DE LA CLASE TestCase assertTrue(condicin); assertTrue( mensaje, condicin);Se lanza un assertionFailedError si la assertFalse(condicin);verificacin realizada no se assertFalse( mensaje, condicin);cumple. Dicha excepcin tieneel mensaje definido. assertNull( mensaje, objeto); assertNotNull( mensaje, objeto); assertEquals( mensaje, esperado, actual); assertEquals( mensaje, esperado, actual, delta); //Valores reales fail( mensaje );No confundir estos mtodos con la instruccin assert utilizada para verificar el invariante de una clase. 59. NIVEL 7EJECUCIN DE LOS CASOS DE PRUEBADEMOSTRACIN EN VIVO. 60. NIVEL 7PREGUNTAS 61. NIVEL 7HOJA DE TRABAJO 62. NIVEL 7CASO DE ESTUDIO 2 UN MANEJADOR DE MUESTRAS 63. NIVEL 7CASO DE ESTUDIO 2 UN MANEJADOR DE MUESTRASModelo del Mundo 64. NIVEL 7 GENERACIN DE DATOSMath.random( ): Genera un valor aleatorio (tipo double) mayor o igual acero y menor a 1.Math.max(valor1, valor2): Retorna el mayor valor entre valor1 y valor2.Math.min( valor1, valor2): Retorna el menor valor entre valor1 y valor2. 65. NIVEL 7MEDICIN DE TIEMPOSSystem.nanoTime( ). Sirve para medir el tiempo en nanosegundos. 66. NIVEL 7 ORDENAMIENTO EN MEMORIA PRINCIPAL - SELECCIN 200 50 21 112 14 155 420 225 2378http://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamiento/Swap.htm 67. NIVEL 7 ORDENAMIENTO EN MEMORIA PRINCIPAL - SELECCINhttp://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamientoNumeros/ordenamientoSeleccion.htm 68. NIVEL 7 ORDENAMIENTO EN MEMORIA PRINCIPAL - SELECCINhttp://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamientoNumeros/ordenamientoSeleccion.htm 69. NIVEL 7ORDENAMIENTO EN MEMORIA PRINCIPAL - BURBUJA 200 50 21 112 14 155 420 225 2378http://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamiento/burbuja.htm 70. NIVEL 7ORDENAMIENTO EN MEMORIA PRINCIPAL - BURBUJAhttp://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamientoNumeros/ordenamientoBurbuja.htm 71. NIVEL 7ORDENAMIENTO EN MEMORIA PRINCIPAL - BURBUJAhttp://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamientoNumeros/ordenamientoBurbuja.htm 72. NIVEL 7 ORDENAMIENTO EN MEMORIA PRINCIPAL - INSERCIN 200 50 21 112 14 155 420 225 2378http://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamientoNumeros/ordenamientoInsercion.htm 73. NIVEL 7 ORDENAMIENTO EN MEMORIA PRINCIPAL - INSERCINhttp://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamientoNumeros/ordenamientoInsercion.htm 74. NIVEL 7 ORDENAMIENTO EN MEMORIA PRINCIPAL - INSERCINhttp://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamientoNumeros/ordenamientoInsercion.htm 75. NIVEL 7CUNDO ORDENAR? Cuando se van a efectuar MUCHAS bsquedas sobre el arreglo ovector. Ms adelante veremos otras maneras de mantener la informacinordenada permanentemente. 76. NIVEL 7BSQUEDA SECUENCIAL Utilizada regularmente cuando la informacin NO est ordenada. 77. NIVEL 7BSQUEDA BINARIA Utilizada regularmente cuando la informacin EST ORDENADA. 78. NIVEL 7PREGUNTAS 79. NIVEL 7HOJA DE TRABAJO 80. NIVEL 7CASO DE ESTUDIO 3 UNA EXPOSICIN CANINA 81. NIVEL 7CASO DE ESTUDIO 3 UNA EXPOSICIN CANINA 82. NIVEL 7OPERADORES SOBRE CADENAS DE CARACTERES Mtodo equals de la clase String para comparar cadenas decaracteres.public boolean ejemplo1Equals( ){String producto1 = Lapiz;String producto2 = Lapiz;boolean resultadoComparacion = producto1.equals(producto2);return resultadoComparacion; resultadoComparacion = true} 83. NIVEL 7OPERADORES SOBRE CADENAS DE CARACTERES Mtodo equals de la clase String para comparar cadenas decaracteres.public boolean ejemplo2Equals( ){String producto1 = Lapiz;String producto2 = Lapiz;boolean resultadoComparacion = producto2.equals(producto1);return resultadoComparacion; resultadoComparacion = true} 84. NIVEL 7OPERADORES SOBRE CADENAS DE CARACTERES Mtodo equals de la clase String para comparar cadenas decaracteres.public boolean ejemplo3Equals( ){String producto1 = Lapiz;String producto2 = Lapiz ;boolean resultadoComparacion = producto2.equals(producto1);return resultadoComparacion; resultadoComparacion = false} 85. NIVEL 7OPERADORES SOBRE CADENAS DE CARACTERES Mtodo equals de la clase String para comparar cadenas decaracteres.public boolean ejemplo4Equals( ){String producto1 = Lapiz;String producto2 = Aspirina;boolean resultadoComparacion = producto2.equals(producto1);return resultadoComparacion; resultadoComparacion = false} 86. NIVEL 7 OPERADORES SOBRE CADENAS DE CARACTERESMtodo equalsIgnoreCase de la clase String para comparar cadenasde caracteres sin tener en cuenta las maysculas y las minsculas.public boolean ejemplo1EqualsIgnoreCase( ){String producto1 = Lapiz;String producto2 = LAPIZ;boolean resultado = producto2.equalsIgnoreCase(producto1);return resultado; resultado = true} 87. NIVEL 7 OPERADORES SOBRE CADENAS DE CARACTERESMtodo equalsIgnoreCase de la clase String para comparar cadenasde caracteres sin tener en cuenta las maysculas y las minsculas.public boolean ejemplo2EqualsIgnoreCase( ){String producto1 = Lpiz;String producto2 = LAPIZ;boolean resultado = producto2.equalsIgnoreCase(producto1);return resultado; resultado = false} 88. NIVEL 7 OPERADORES SOBRE CADENAS DE CARACTERES Mtodo equalsIgnoreCase de la clase String para comparar cadenasde caracteres sin tener en cuenta las maysculas y las minsculas.public boolean ejemplo3EqualsIgnoreCase( ){String producto1 = Lpiz;String producto2 = Aspirina;boolean resultado = producto2.equalsIgnoreCase(producto1);return resultado; resultado = false} 89. NIVEL 7 COMPARACIN DE OBJETOS POR MLTIPLES CRITERIOS El objetivo es tener un mtodo de comparacin por cada criterio deorden que pueda tener un objeto. En la exposicin canina los perros se pueden ordenar por nombre,raza, edad y puntos. Para cada criterio, la clase Perro debe tener un mtodo decomparacin. 90. NIVEL 7COMPARACIN DE OBJETOS POR MLTIPLES CRITERIOS 91. NIVEL 7COMPARACIN DE OBJETOS POR MLTIPLES CRITERIOS 92. NIVEL 7COMPARACIN DE OBJETOS POR MLTIPLES CRITERIOS 93. NIVEL 7PREGUNTAS 94. NIVEL 7HOJA DE TRABAJO 95. NIVEL 7MANEJO DE GRUPOS DE VALORES 96. NIVEL 7MANEJO DE GRUPOS DE VALORES 97. NIVEL 7MANEJO DE GRUPOS DE VALORES 98. NIVEL 7PREGUNTAS 99. NIVEL 7HOJA DE TRABAJO