APO2 - Presentacion nivel 7
Upcoming SlideShare
Loading in...5
×
 

APO2 - Presentacion nivel 7

on

  • 4,593 views

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.

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.

Statistics

Views

Total Views
4,593
Views on SlideShare
4,126
Embed Views
467

Actions

Likes
0
Downloads
87
Comments
0

2 Embeds 467

http://jorgeportella.wordpress.com 466
http://www.linkedin.com 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

APO2 - Presentacion nivel 7 APO2 - Presentacion nivel 7 Presentation Transcript

  • NIVEL 7BIENVENIDOS A ALGORÍTMICA Y PROGRAMACIÓN 2 (APO 2) Mario José Villamizar Cano mj.villamizar24@uniandes.edu.co Oficina ML-637http://sistemas.uniandes.edu.co/~mj.villamizar24/dokuwiki/doku.php Grupo de Tecnologías de Información y Comunicación (COMIT) Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá D.C., Colombia
  • NIVEL 7 REDES SOCIALES mjvc007@hotmail.com http://twitter.com/mariocloudhttp://linkedin.com/in/mariojosevillamizarcano
  • NIVEL 7PROCESO PARA SOLUCIONAR UN PROBLEMA
  • NIVEL 7ETAPAS DEL PROCESO DE SOLUCIÓN A UN PROBLEMA
  • NIVEL 7 ANÁLISIS DEL PROBLEMAEntender el problema del cliente y qué es lo que se quiere hacer.La salida de esta etapa se denomina especificación del problema.
  • NIVEL 7SOLUCIÓN A UN PROBLEMA
  • NIVEL 7NIVEL 7 – BÚSQUEDA, ORDENAMIENTO Y PRUEBAS AUTOMÁTICASCaso de estudio 1 – Un traductor de idiomas Invariantes de una clase Pruebas automáticasCaso de estudio 2 – Un manejador de muestras Algoritmos de ordenamiento (Selección, Intercambio, Inserción) Algoritmos de búsqueda (Búsqueda secuencial y binaria) Generación de datos aleatorios Medición de tiemposCaso de estudio 3 – Una exposición canina Comparación de objetos por múltiples criterios Ordenamiento y búsqueda de objetos Manejo de grupos de valores en la interfaz gráfica de usuario
  • NIVEL 7 CASOS DE ESTUDIOCaso de estudio 1: Un traductor de idiomas
  • NIVEL 7 CASOS DE ESTUDIOCaso de estudio 2: Un manejador de muestras
  • NIVEL 7 CASOS DE ESTUDIOCaso de estudio 3: Una exposición canina
  • NIVEL 7 HOJAS DE TRABAJOHoja de trabajo 1: Bolsa de Empleo
  • NIVEL 7 HOJAS DE TRABAJOHoja de trabajo 2: Venta de Vehículos
  • NIVEL 7 HOJAS DE TRABAJOHoja de trabajo 3: Rompecabezas
  • NIVEL 7 CASO DE ESTUDIO 1 – UN TRADUCTOR DE IDIOMASInterfaz Gráfica
  • NIVEL 7 CASO DE ESTUDIO 1 – UN TRADUCTOR DE IDIOMASRequerimientos funcionales.
  • NIVEL 7 CASO DE ESTUDIO 1 – UN TRADUCTOR DE IDIOMASRequerimientos funcionales.
  • NIVEL 7 CASO DE ESTUDIO 1 – UN TRADUCTOR DE IDIOMASModelo del Mundo
  • NIVEL 7 CASO DE ESTUDIO 1 – UN TRADUCTOR DE IDIOMASModelo de la Interfaz
  • NIVEL 7 CASO DE ESTUDIO 1 – UN TRADUCTOR DE IDIOMASModelo de las Pruebas
  • NIVEL 7 CASO DE ESTUDIO 1 – UN TRADUCTOR DE IDIOMAS ¿Dónde quedaron plasmadas las siguientes restricciones delmundo?No hay dos palabras en español repetidas en ningún diccionario.No hay dos palabras en español con las misma traducción en ningúndiccionario.Las palabra de cada traducción no puede ser nula ni una cadena vacía.Las traducción de cada traducción no puede ser nula ni una cadenavacía.Todos los traductores deben estar inicializados. Si la clase Traductor tiene 10 métodos en todos ellos debería haberuna precondición para validar estas propiedades de los diccionarios.Es una pérdida de tiempo debido a documentación y codificación.Además es ineficiente desde el punto de vista de tiempos de respuesta.
  • NIVEL 7 INVARIANTES DE UNA CLASEInvariante de una clase: Elemento fundamental para construirprogramas correctos.Sirven parta verificar que la información 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 métodos sinnecesidad de que aparezcan en las precondiciones y sin necesidad deverificarlos.Solo se utilizan durante el desarrollo del programa no en unentorno de producción, es decir, cuando ya la debe utilizar elusuario final.
  • 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 asociación. Relaciones entre los atributos y/o los objetos con los cuales serelaciona.
  • NIVEL 7 NUEVA NOCIÓN DE CONTRATOTodo método (que no sea un constructor) puede suponer al comienzo desu ejecución que se cumplen todas las afirmaciones que aparecen en elinvariante de la clase y en la precondición del contrato, y se comprometea que después de haber sido ejecutado sobre un objeto, este cumpletodas las afirmaciones del invariante y de la postcondición.
  • NIVEL 7 ASERCIONES DE LA CLASE TRADUCCÍONNo hay dos palabras en español repetidas en ningún diccionario.No hay dos palabras en español con las misma traducción en ningúndiccionario.La palabra de cada traducción no puede ser nula ni una cadena vacía.La traducción de cada traducción no puede ser nula ni una cadenavacía.Todos los traductores deben estar inicializados.palabra != null!palabra.equals( "" )traduccion != null!traduccion.equals( "" )
  • NIVEL 7 ASERCIONES DE LA CLASE TRADUCTORTodos los traductores deben estar inicializados.No hay dos palabras en español repetidas en ningún diccionario.No hay dos palabras en español con las misma traducción en ningúndiccionario.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
  • NIVEL 7 ¿COMO IDENTIFICAR LAS ASERCIONES?Las aserciones (afirmaciones) se clasifican en dos tipos:Las que provienen del análisis del problema:No hay dos palabras en español repetidas en ningún diccionario.No hay dos palabras en español con las misma traducción en ningúndiccionario.Las que provienen de decisiones del diseño:La palabra de cada traducción no puede ser nula ni una cadena vacía.La traducción de cada traducción no puede ser nula ni una cadenavacía.Todos los traductores deben estar inicializados.
  • NIVEL 7¿CUÁL CLASE ES RESPONSABLE DE HACER LAS AFIRMACIONES?No hay dos palabras en español repetidas en ningún diccionario.No hay dos palabras en español con las misma traducción en ningúndiccionario.Todos los traductores deben estar inicializados.La palabra de cada traducción no puede ser nula ni una cadena vacía.La traducción de cada traducción no puede ser nula ni una cadenavacía.
  • NIVEL 7 ¿CÓMO DOCUMENTAR EL INVARIANTE DE UNA CLASE?Se debe documentar como parte del Javadoc que describe la clase: Clase Traductor CLatretsdsasadClase Traduccion
  • NIVEL 7 INSTRUCCIÓN ASSERTLa instrucción assert de Java permite verificar una aserción (afirmación),hay dos maneras de utilizar esta instrucción: assert expresión; Ejemplo: assert traduccion != null;En este caso la expresión a evaluar debe ser de tipo lógico. Si laexpresión da verdadero, el programa continúa normalmente.Si da falso se lanza un tipo de excepción denominada AssertionError quehace que el programa termine si nadie lo atrapa. assert expresión1 : expresion2; Ejemplo: assert traduccion != null : "traducción inválida";Similar al caso anterior, solo que la expresión2 debe ser de tipo cadenade caracteres. En caso de que haya un error (cuando la expresión1 dafalse) se le asocia a la Excepción el mensaje de la expresión2.
  • NIVEL 7 INSTRUCCIÓN ASSERTEjemplo: assert traduccion != null : "traducción inválida";Similar a: if(traduccion == null) { throw new Exception("traducción inválida"); }Sin embargo, Java permite activar y desactivar la verificación deaserciones de manera sencilla, por lo tanto cuando hay que entregar elprograma al usuario final, las verificaciones se pueden desactivarfácilmente (el computador no debe seguir haciendo verificacionesinútiles).
  • NIVEL 7 ¿CÓMO VERIFICAR EL INVARIANTE DURANTE LA EJECUCIÓN?En cada clase que tenga invariante se debe verificar, para ello se escribeel siguiente método:private void verificarInvariante()1. En este método se utiliza la instrucción assert para cada aserción delinvariante. Si la expresión es simple colocamos la aserción directamentecomo instrucción de este método. Si es compleja hay que desarrollar unmétodo privado de tipo lógico que haga la verificación.2. Al final de cada Contructor y al final de cada método modificador, sedebe agregar la llamada al método verificarInvariante, ya que estosmétodos son los que cambian el estado del mundo. Recordemos quelas invariantes se utilizan para que el programador esté seguro deque durante la ejecución del programa, siempre hay estadoconsistente del mundo.
  • NIVEL 7 ¿CÓMO VERIFICAR EL INVARIANTE DURANTE LA EJECUCIÓN?Ejemplo para la clase Traduccion:
  • NIVEL 7 ¿CÓMO VERIFICAR EL INVARIANTE DURANTE LA EJECUCIÓN?Ejemplo para la clase Traduccion:
  • NIVEL 7 ¿CÓMO VERIFICAR EL INVARIANTE DURANTE LA EJECUCIÓN?Ejemplo para la clase Traductor:
  • NIVEL 7 ¿CÓMO VERIFICAR EL INVARIANTE DURANTE LA EJECUCIÓN?Ejemplo para la clase Traductor:
  • NIVEL 7 ACTIVAR Y DESACTIVAR LA VERIFICACIÓN DEL INVARIANTECuando durante la verificación del invariante se detecta un error, elprograma se detiene, permitiéndole al programador detectar el métododefectuoso.Por defecto durante la ejecución de un programa NO se verifican lasinstrucciones assert.Para hacer que las instrucciones assert se evalúen es necesario incluiren la llamada del programa la opción –ea (-enableassertions). Esto sehace desde eclipse, en la parte de parámetros para la máquina virtual:VM arguments.
  • NIVEL 7ACTIVAR Y DESACTIVAR LA VERIFICACIÓN DEL INVARIANTE En este ejemplo se activa la verificación de instrucciones assert para todas las clases del programa. También se puede habilitar la verificación a nivel de clases y a nivel de paquetes.
  • NIVEL 7ACTIVAR Y DESACTIVAR LA VERIFICACIÓN DEL INVARIANTE Solo para una clase del paquete mundo Solo para todas las clases del paquete mundo Todas las clases del programa, menos una del mundo
  • NIVEL 7 ASIGNACIÓN DE RESPONSABILIDADES E IMPLEMENTACIÓN DE MÉTODOSPara definir las responsabilidades de cada clase, particularmente en lorelacionado a métodos y contratos se debe seguir una secuencia detareas:1. Aplicar la técnica del experto para la descomposición de los requerimientos, identificando los servicios (métodos) que debe tener cada clase.2. Diseñar la signatura de los métodos de cada clase.3. Escribir el contrato de los métodos de cada clase.4. Hacer la declaración e implementación en Java de los métodos.
  • NIVEL 7ASIGNACIÓN DE RESPONSABILIDADES E IMPLEMENTACIÓN DE MÉTODOS
  • NIVEL 7LLAMADO A LOS MÉTODOS DEL MUNDO DESDE LA INTERFAZ
  • NIVEL 7PREGUNTAS
  • NIVEL 7HOJA DE TRABAJO
  • NIVEL 7 PRUEBAS UNITARIAS AUTOMÁTICASUna vez se han implementado todos los métodos de las clases, esnecesarios probar que TODOS LOS MÉTODOS de CADA UNA DE LASCLASES DEL MUNDO cumplen efectivamente su contrato.Las pruebas unitarias automáticas 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 cuál clase fue yen cuál método ocurrió el error.Las pruebas unitarias automáticas son una excelente herramientapara garantizar programas de calidad. Deben verse como una ayudapara mejorar la calidad del programa y no como un esfuerzo extra.
  • NIVEL 7 PRUEBAS UNITARIAS AUTOMÁTICASUna clase de prueba por cada una de las clases del modelo delmundo que queramos probar. Cada clase de prueba tendrá unaasociación hacia la clase verificada (sin pasar por la interfaz).
  • NIVEL 7 PRUEBAS UNITARIAS AUTOMÁTICASLas clases de prueba se van a almacenaren un paquete distinto(cupi2.uniandes.nombre_ejercicio.test).Las clases de prueba físicamente van aquedar en la carpeta testsource.Hay dos elementos importantes al construirlas clases de prueba:1. Los escenarios.2. Los casos de prueba.
  • NIVEL 7 ESCENARIOS DE PRUEBA ESCENARIO 1Un escenario es un español inglés ESCENARIO 2objeto de la clase que se español inglés perro dogquiere probar, que tiene ratón mouse casa houseun estado conocido pornosotros. vaso glass perro dog vino wine ratón mouseUn escenario se español francés español francésrepresenta con un mesa table mesa tablediagrama de objetos lápiz crayon lápiz crayon(cualquier sintaxis válida). libro livre libro livreEn una clase de prueba azul bleu español italianose debe construir distintos teléfono téléphone mesa tavloescenarios que permitan lápiz rosseto español italianoprobar el correctofuncionamiento del mesa tavloprograma.
  • NIVEL 7 ESCENARIOS DE PRUEBAUn escenario siempre ESCENARIO 2 - MALOdebe cumplir con el español inglésinvariante de la clase. casa houseSe deben construir perro dog ESCENARIO 1escenarios para todas las casa homeposibles situaciones o español inglés español francésestados que pueda tener español francés mesa tableel modelo del mundo. español italiano lápiz crayonUna vez definidos los libro livreescenarios es necesario español italianodefinir los casos de mesa tavloprueba, para cada uno de lápiz rossetolos métodos de la claseque queremos probar.
  • NIVEL 7 CASOS DE PRUEBA ESCENARIO 1Un caso de prueba está asociado a: español inglés perro dog1. Un escenario. ratón mouse2. Un método de la clase que se quiere probar. vaso glass3. Unos valores de entrada para los parámetros del método. vino wine4. El resultado de ejecutar el método al español francés escenario, con los valores de entrada. mesa table lápiz crayonTanto el escenario como los parámetros deben libro livrecumplir las precondiciones del método que sequiere probar. azul Bleu teléfono téléphoneCada caso de prueba debe tener un objetivo español italianoespecífico (NO se deben definir al azar). mesa tavlo
  • NIVEL 7 CASOS DE PRUEBA ESCENARIO N español inglés perro dog Caso de Prueba # 1 ratón mouse Objetivo: Probar el método agregar español francés palabras de la clase Traductor mesa table Español italiano mesa tavloCaso Prueba Método Escenario Parámetros ResultadoNo 1 – ClaseTraductor agregarTraduccion() Esc. N pal = azul Verdadero. Se agregó la trad = blue palabra al diccionario español idDestino = INGLES ingles.Traductor agregarTraduccion() Esc. N pal = ratón Falso. La palabra ratón ya trad = mickey existe en el diccionario idDestino = INGLES español.Traductor agregarTraduccion() Esc. N pal = azul Verdadero. Se agregó la trad = bleu palabra al diccionario español idDestino = francés. FRANCES
  • NIVEL 7 IMPLEMENTACIÓN DE LAS PRUEBAS UNITARIAS AUTOMÁTICASEs 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 estásiendo verificada.En este curso utilizaremos el framework JUnit que facilita la creación delas clases de prueba así como su ejecución.
  • NIVEL 7 IMPLEMENTACIÓN DE LAS PRUEBAS UNITARIAS AUTOMÁTICASLas clases de prueba deben declararse con el encabezado extendsTestCase.Se deben importar las clases del paquete junit.framework.Los métodos para construir los escenarios van a ser privados y van acomenzar con el prefijo setupEscenario seguido de un número. Estemétodo debe encargarse de crear una instancia del mundo e invocar losmétodos necesarios para llevarlo al estado definido en el diseño.Los métodos que implementan los casos de prueba deben ser de tipovoid y su nombre debe comenzar con el prefijo test.
  • NIVEL 7 IMPLEMENTACIÓN DE LAS PRUEBAS UNITARIAS AUTOMÁTICASLas clases de prueba deben declararse con el encabezado extendsTestCase.Se deben importar las clases del paquete junit.framework.Los métodos para construir los escenarios van a ser privados y van acomenzar con el prefijo setupEscenario seguido de un número. Estemétodo debe encargarse de crear una instancia del mundo e invocar losmétodos necesarios para llevarlo al estado definido en el diseño.Los métodos que implementan los casos de prueba deben ser de tipovoid y su nombre debe comenzar con el prefijo test.
  • NIVEL 7CREACIÓN DE LA CLASE DE PRUEBA
  • NIVEL 7CREACIÓN DE UN ESCENARIO DE PRUEBA ESCENARIO N español inglés perro dog ratón mouse español francés mesa table Español italiano mesa tavlo
  • NIVEL 7 IMPLEMENTACIÓN DE UN CASO DE PRUEBACaso Prueba Método Escenario Parámetros ResultadoNo Z – ClaseTraductor agregarTraduccion() Esc. N pal = azul Verdadero. Se agregó la trad = blue palabra al diccionario español idDestino = INGLES ingles.Traductor agregarTraduccion() Esc. N pal = ratón Falso. La palabra ratón ya trad = mickey existe en el diccionario idDestino = INGLES español.Traductor agregarTraduccion() Esc. N pal = azul Verdadero. Se agregó la trad = bleu palabra al diccionario español idDestino = francés. FRANCES
  • NIVEL 7 IMPLEMENTACIÓN DE UN CASO DE PRUEBAEscenario NCaso dePrueba Z
  • NIVEL 7 FUNCIONALIDADES DE LA CLASE TestCase• assertTrue(condición);• assertTrue( mensaje, condición); Se lanza un assertionFailedError si la• assertFalse(condición); verificación realizada no se• assertFalse( mensaje, condición); cumple. Dicha excepción tiene el mensaje definido.• assertNull( mensaje, objeto);• assertNotNull( mensaje, objeto);• assertEquals( mensaje, esperado, actual);• assertEquals( mensaje, esperado, actual, delta); //Valores reales• fail( mensaje );No confundir estos métodos con la instrucción assert utilizada para verificar el invariante de una clase.
  • NIVEL 7EJECUCIÓN DE LOS CASOS DE PRUEBA DEMOSTRACIÓN EN VIVO.
  • NIVEL 7PREGUNTAS
  • NIVEL 7HOJA DE TRABAJO
  • NIVEL 7CASO DE ESTUDIO 2 – UN MANEJADOR DE MUESTRAS
  • NIVEL 7 CASO DE ESTUDIO 2 – UN MANEJADOR DE MUESTRASModelo del Mundo
  • NIVEL 7 GENERACIÓN 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.
  • NIVEL 7 MEDICIÓN DE TIEMPOSSystem.nanoTime( ). Sirve para medir el tiempo en nanosegundos.
  • NIVEL 7 ORDENAMIENTO EN MEMORIA PRINCIPAL - SELECCIÓN 200 50 21 112 14 155 420 225 23 78http://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamiento/Swap.htm
  • NIVEL 7 ORDENAMIENTO EN MEMORIA PRINCIPAL - SELECCIÓNhttp://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamientoNumeros/ordenamientoSeleccion.htm
  • NIVEL 7 ORDENAMIENTO EN MEMORIA PRINCIPAL - SELECCIÓNhttp://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamientoNumeros/ordenamientoSeleccion.htm
  • NIVEL 7 ORDENAMIENTO EN MEMORIA PRINCIPAL - BURBUJA 200 50 21 112 14 155 420 225 23 78http://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamiento/burbuja.htm
  • NIVEL 7 ORDENAMIENTO EN MEMORIA PRINCIPAL - BURBUJAhttp://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamientoNumeros/ordenamientoBurbuja.htm
  • NIVEL 7 ORDENAMIENTO EN MEMORIA PRINCIPAL - BURBUJAhttp://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamientoNumeros/ordenamientoBurbuja.htm
  • NIVEL 7 ORDENAMIENTO EN MEMORIA PRINCIPAL - INSERCIÓN 200 50 21 112 14 155 420 225 23 78http://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamientoNumeros/ordenamientoInsercion.htm
  • NIVEL 7 ORDENAMIENTO EN MEMORIA PRINCIPAL - INSERCIÓNhttp://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamientoNumeros/ordenamientoInsercion.htm
  • NIVEL 7 ORDENAMIENTO EN MEMORIA PRINCIPAL - INSERCIÓNhttp://cupi2/sitio/images/cursosCupi2/apo2/entrenadores/n8ent_ordenamientoNumeros/ordenamientoInsercion.htm
  • NIVEL 7 ¿CUÁNDO ORDENAR?• Cuando se van a efectuar MUCHAS búsquedas sobre el arreglo o vector.• Más adelante veremos otras maneras de mantener la información ordenada permanentemente.
  • NIVEL 7 BÚSQUEDA SECUENCIAL• Utilizada regularmente cuando la información NO está ordenada.
  • NIVEL 7 BÚSQUEDA BINARIA• Utilizada regularmente cuando la información ESTÁ ORDENADA.
  • NIVEL 7PREGUNTAS
  • NIVEL 7HOJA DE TRABAJO
  • NIVEL 7CASO DE ESTUDIO 3 – UNA EXPOSICIÓN CANINA
  • NIVEL 7CASO DE ESTUDIO 3 – UNA EXPOSICIÓN CANINA
  • NIVEL 7 OPERADORES SOBRE CADENAS DE CARACTERES Método 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}
  • NIVEL 7 OPERADORES SOBRE CADENAS DE CARACTERES Método 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}
  • NIVEL 7 OPERADORES SOBRE CADENAS DE CARACTERES Método 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}
  • NIVEL 7 OPERADORES SOBRE CADENAS DE CARACTERES Método 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}
  • NIVEL 7 OPERADORES SOBRE CADENAS DE CARACTERES Método equalsIgnoreCase de la clase String para comparar cadenasde caracteres sin tener en cuenta las mayúsculas y las minúsculas.public boolean ejemplo1EqualsIgnoreCase( ){ String producto1 = “Lapiz”; String producto2 = “LAPIZ”; boolean resultado = producto2.equalsIgnoreCase(producto1); return resultado; resultado = true}
  • NIVEL 7 OPERADORES SOBRE CADENAS DE CARACTERES Método equalsIgnoreCase de la clase String para comparar cadenasde caracteres sin tener en cuenta las mayúsculas y las minúsculas.public boolean ejemplo2EqualsIgnoreCase( ){ String producto1 = “Lápiz”; String producto2 = “LAPIZ”; boolean resultado = producto2.equalsIgnoreCase(producto1); return resultado; resultado = false}
  • NIVEL 7 OPERADORES SOBRE CADENAS DE CARACTERES Método equalsIgnoreCase de la clase String para comparar cadenasde caracteres sin tener en cuenta las mayúsculas y las minúsculas.public boolean ejemplo3EqualsIgnoreCase( ){ String producto1 = “Lápiz”; String producto2 = “Aspirina”; boolean resultado = producto2.equalsIgnoreCase(producto1); return resultado; resultado = false}
  • NIVEL 7 COMPARACIÓN DE OBJETOS POR MÚLTIPLES CRITERIOS• El objetivo es tener un método de comparación por cada criterio de orden que pueda tener un objeto.• En la exposición canina los perros se pueden ordenar por nombre, raza, edad y puntos.• Para cada criterio, la clase Perro debe tener un método de comparación.
  • NIVEL 7COMPARACIÓN DE OBJETOS POR MÚLTIPLES CRITERIOS
  • NIVEL 7COMPARACIÓN DE OBJETOS POR MÚLTIPLES CRITERIOS
  • NIVEL 7COMPARACIÓN DE OBJETOS POR MÚLTIPLES CRITERIOS
  • NIVEL 7PREGUNTAS
  • NIVEL 7HOJA DE TRABAJO
  • NIVEL 7MANEJO DE GRUPOS DE VALORES
  • NIVEL 7MANEJO DE GRUPOS DE VALORES
  • NIVEL 7MANEJO DE GRUPOS DE VALORES
  • NIVEL 7PREGUNTAS
  • NIVEL 7HOJA DE TRABAJO