Programación Orientada a Objetos Curso 2015/2016. Ejercicios sobre colecciones y Java 8
|
|
|
- Elvira Rico Parra
- hace 9 años
- Vistas:
Transcripción
1 Programación Orientada a Objetos Curso 2015/2016 Ejercicios sobre colecciones y Java 8 Previo Descárgate de la sección de prácticas de la página web de la asignatura (dis.um.es/docencia/poo) el proyecto Colecciones-Java8 e impórtalo en Eclipse. Este proyecto contiene la implementación del problema de la subasta. El enunciado de este problema también lo puedes encontrar en la web. A la clase Usuario se le han añadido dos atributos que no se contemplan en el problema de la subasta (fecha de nacimiento y correo electrónico) para favorecer la definición de los ejercicios relacionados con las nuevas propiedades de Java 8. Colecciones ordenadas Añade al paquete pruebas del proyecto que te has descargado, la clase PruebaColeccionesOrdenadas e incluye el método main para realizar los siguientes ejercicios. Conjuntos ordenados: - Declara y construye un conjunto ordenado (TreeSet) que almacene cadenas (String). - Introduce varias cadenas en el conjunto. - Realiza un recorrido (for each) del conjunto y comprueba que el iterador retorna los elementos ordenados según el orden lexicográfico de las cadenas (orden alfabético). Este comportamiento se debe a que las cadenas implementan la interfaz Comparable<T>, es decir, tienen un orden natural. - Implementa el orden natural de la clase Usuario. El orden natural debe basarse en el orden alfabético del nombre de usuario. Utiliza el método compareto de la clase String para comparar los nombres de los usuarios. - Declara y construye un conjunto ordenado de usuarios. - Construye varios usuarios y añádelos al conjunto. Observa que si introducimos varios usuarios con el mismo nombre sólo el primero que se inserte permanece en el conjunto. Un conjunto ordenado determina que un elemento es repetido si en la comparación obtiene el valor 0. Por tanto, es recomendable que la implementación del orden natural sea consistente con la igualdad (equals). - Recorre el conjunto y muestra los usuarios. Observa que el iterador retorna los elementos según el orden natural. - Implementa un comparador de usuarios (interfaz java.util.comparator<t>) que ordene los usuarios según el orden alfabético inverso de sus nombres. - Declara y construye un conjunto ordenado de usuarios que aplique el orden implementado por el comparador anterior. Añade usuarios a la colección (método addall) y realiza un recorrido para comprobar que el orden es el correcto. - Utiliza los métodos sort de la clase Collections para ordenar la lista, según el orden natural y con el comparador de orden inverso. Muestra el contenido de la lista tras ambas ordenaciones. 1/8
2 Mapas con claves ordenadas: - Declara y construye un mapa ordenado (TreeMap) que asocie cadenas (String) con objetos usuario. - Recorre el último conjunto ordenado e inserta en el mapa los objetos del conjunto. Utiliza el nombre del usuario como clave en el mapa. - Recorre las claves del mapa ordenado (método keyset) y muestra por la consola las claves. Observa que el mapa retorna las entradas ordenadas por clave. Por defecto, utiliza el orden natural de la clase que actúa de clave (String). - Implementa un comparador de cadenas que implemente el orden alfabético inverso. Para ello utiliza el orden natural de las cadenas (método compareto). - Declara y construye un mapa ordenado que utilice el comparador. Introduce las entradas del mapa anterior al nuevo mapa. - Recorre y muestra por la consola las claves del mapa. Observa que las claves están ordenadas aplicando el orden del comparador. Ejercicios colecciones: Crea un paquete colecciones y añade una clase Utilidades que contenga los siguientes métodos de clase (static). 1. Implementa un método que tenga como parámetro un argumento de tamaño variable de tipo String y que retorne un mapa ordenado que asocie cadenas con el número de repeticiones en el parámetro del método. Por ejemplo, si es llamado con metodo("hola", "examen", "hola") retornará un mapa ordenado que asociaría a la cadena examen el valor 1 y a la cadena hola el valor Escribe un método en Java que tenga como parámetro un mapa que asocie cadenas con enteros y que devuelva un conjunto con las cadenas que tienen asociado un número par. 3. La moda es el valor (o valores) de una serie de números que más veces se repite. Por ejemplo, la moda de la serie {2, 3, 3, 3, 4, 5, 4, 6, 4 es {3, 4. En el caso de que no se repita ningún valor la serie no tiene moda. Implementa un método que reciba como parámetro una serie de números de tamaño variable y devuelva una lista que contenga la moda de dicha serie. 4. Escribe un método genérico que reciba como parámetro una colección de elementos y retorne una nueva colección formada por los elementos de la original sin repetidos. 5. Programa un método genérico que acepte como parámetro un mapa que asocie cadenas con cualquier otro tipo de datos y retorne un conjunto con los valores almacenados en el mapa 2/8
3 Java 8 Caso de estudio Supongamos que al administrador del sistema de subastas le interesa disponer de una funcionalidad que le permita ejecutar cualquier tipo de acción (por ejemplo, enviar un correo electrónico) sobre todos los usuarios registrados que satisfagan un criterio (por ejemplo, aquellos que sea su cumpleaños). Vamos a analizar diferentes alternativas para implementar esta funcionalidad. Entre estas alternativas encontraremos primero soluciones Java 7 y posteriormente la aplicación de las nuevas características de Java 8. Enfoque 1: Definir métodos de búsqueda El enfoque más simple es implementar en una clase de utilidades (clase Utils) tantos métodos diferentes como criterios de búsqueda y acciones queramos aplicar sobre los usuarios registrados. Por ejemplo, public class Utils { public static void imprimirusuariosmayoresde(list<usuario> usuarios, int edad){ for (Usuario usuario : usuarios){ if (usuario.getedad() >= edad) CRITERIO System.out.println(usuario); ACCIÓN public static void imprimirusuariosenrangoedad(list<usuario> usuarios, int edadmin, int edadmax){ for (Usuario usuario : usuarios){ if (usuario.getedad() >= edadmin && usuario.getedad() <= edadmax) System.out.println(usuario); No obstante, este enfoque no es un buen diseño dado que implementamos métodos prácticamente iguales y las condiciones de búsqueda pueden ser muy amplias y pueden ir cambiando. Enfoque 2: Definir los criterios de búsqueda en una clase separada Una mejora al código anterior consiste en definir cada criterio de búsqueda en una clase separada. De esta manera, podemos definir un método que imprima los usuarios que cumplan el criterio que se establece como parámetro: public static void imprimirusuarios(list<usuario> usuarios, Criterio criterio){ for (Usuario usuario : usuarios) if (criterio.test(usuario)) System.out.println(usuario); 3/8
4 El método imprimirusuarios es un ejemplo de aplicación del patrón estrategia. El criterio de búsqueda (estrategia) se define en una interfaz que incluye el método test. Este método recibe como parámetro un objeto de tipo Usuario y devuelve un valor boolean que indica si el usuario cumple o no el criterio de búsqueda. public interface Criterio { boolean test(usuario usuario); De esta forma, tendremos que implementar tantas clases como criterios de búsqueda necesitemos. Por ejemplo, el criterio que seleccione los usuarios jóvenes, esto es mayores de edad y menores de 35 años. public class UsuariosJovenes implements Criterio public boolean test(usuario usuario) { return usuario.getedad() >= 18 && usuario.getedad() < 35; Para imprimir los usuarios jóvenes, tendremos que pasar como parámetro al método imprimirusuarios un objeto de la clase que implementa el criterio de búsqueda (o selección) de usuarios: public class Programa { public static void main(string[] args) { LinkedList<Usuario> usuarios = new LinkedList<Usuario>();... //Se omite la creación de Usuarios e inserción en la lista Utils.imprimirUsuarios(usuarios, new UsuariosJovenes()); Enfoque 3: Utilizar clases anónimas para definir los criterios El enfoque anterior tiene el inconveniente de que se implementan muchas clases, y algunas de ellas sólo se van a utilizar en un punto del código. En lugar de crear una clase por cada criterio, se pueden utilizar clases anónimas para especificar el criterio en el momento de hacer la llamada al método imprimirusuarios: Utils.imprimirUsuarios(usuarios, new Criterio(){ public boolean test(usuario usuario){ return usuario.getedad() >= 18 && usuario.getedad() < 35; ); 4/8
5 Enfoque 4: Utilizar expresiones lambda para especificar el criterio de búsqueda (Java 8) Dado que la interfaz Criterio que hemos definido contiene un solo método (método test), es un ejemplo de interfaz funcional, que se introduce en Java 8. Una característica útil de este tipo de interfaz es que cuando se implementa se puede omitir el nombre del método y el tipo de la interfaz. Así, en lugar de utilizar una clase anónima, cuando se llama al método imprimirusuarios, se puede pasar como parámetro una expresión lambda que especifica el comportamiento del método test de la interfaz. Utils.imprimirUsuarios(usuarios, usuario -> usuario.getedad() >= 18 && usuario.getedad() < 35); Enfoque 5: Utilizar las interfaces funcionales predefinidas (interfaz Predicate) La librería de Java proporciona varias interfaces funcionales de utilidad en el paquete java.util.function, como por ejemplo, la interfaz Predicate<T>. public interface Predicate<T> { boolean test(t elem); La definición de esta interfaz coincide con la definición de la interfaz Criterio que hemos implementado previamente (Enfoque 2), con la diferencia de que el predicado se define de forma genérica. Puesto que el lenguaje proporciona ya este tipo de datos, no merece la pena implementar un tipo tan sencillo en nuestra aplicación y podemos reutilizar el que nos ofrece la librería de Java. Así, la versión del método imprimirusuario quedaría como sigue: public static void imprimirusuariospredicado(list<usuario> usuarios, Predicate<Usuario> criterio){ for (Usuario usuario : usuarios) if (criterio.test(usuario)) System.out.println(usuario); La forma de invocar a esta versión de imprimirusuarios es igual a la utilizada en el enfoque 4, en el que hacíamos uso de las expresiones lambda. Utils.imprimirUsuariosPredicado(usuarios, usuario -> usuario.getedad() >= 18 && usuario.getedad() < 35); Enfoque 6: Utilizar expresiones lambda para especificar la acción (interfaz Consumer) La funcionalidad planteada en el caso de estudio requería que se pudiera aplicar cualquier acción sobre los usuarios que cumplieran un determinado criterio. En el código implementado hasta el momento, se puede especificar el criterio de selección de los 5/8
6 usuarios, pero la acción a realizar es fija, imprimir el usuario. Podemos generalizar el método de manera que la acción que se va a aplicar, sobre los usuarios que cumplen el criterio de selección, también pueda ser establecida en el método. Para especificar la acción a realizar sobre los objetos seleccionados se puede utilizar otra de las interfaces funcionales predefinidas, la interfaz java.util.function.consumer<t>. Esta interfaz contiene el método void accept(t t), que acepta un objeto y aplica alguna acción sobre él, sin retornar nada, por ejemplo, imprimir en la consola. Utilizando esta interfaz el método imprimirusuarios se puede generalizar como sigue: public static void procesarusuarios(list<usuario> usuarios, Predicate<Usuario> criterio, Consumer<Usuario> accion){ for (Usuario usuario : usuarios){ if (criterio.test(usuario)) accion.accept(usuario); La forma de invocar a este método, utilizando expresiones lambda, para imprimir todos los usuarios jóvenes registrados sería: Utils.procesarUsuarios(usuarios, usuario -> usuario.getedad() >= 18 && usuario.getedad() < 35, usuario -> System.out.println(usuario)); De forma alternativa, cuando el parámetro es una interfaz funcional, en lugar de una expresión lambda, también es posible pasar como parámetro una referencia a un método. Así, la llamada también podría hacerse de la siguiente forma: Utils.procesarUsuarios(usuarios, usuario -> usuario.getedad() >= 18 && usuario.getedad() < 35, System.out::println); La invocación al método procesarusuarios realiza las siguientes acciones: 1) Obtiene un usuario de la colección de usuarios. 2) Comprueba si cumple la condición establecida en el predicado (Predicate). 3) Ejecuta una acción sobre el objeto que cumple el predicado (Consumer), en este caso mostrarlo en la consola. Enfoque 7: Utilizar streams para procesar los objetos de una colección En lugar de definir un método que se encargue de procesar los objetos de la colección utilizando un iterador, se puede utilizar un stream (java.util.stream) de la colección (secuencia de objetos que contiene) y las operaciones que proporciona. Estas operaciones incluyen, entre otras, las funcionalidades para filtrar objetos (filter) y para aplicar una misma acción sobre todos los objetos de la secuencia (foreach). Así, no necesitaríamos la clase Utils y la funcionalidad para imprimir todos los usuarios jóvenes quedaría como sigue: 6/8
7 usuarios.stream().filter(usuario -> usuario.getedad() >= 18 && usuario.getedad() < 35).forEach(usuario -> System.out.println (usuario)); Los streams también proporcionan, entre otras, una operación para obtener un nuevo stream con el resultado de la correspondencia del objeto original con otro (map). Así, la funcionalidad para imprimir el de todos los usuarios jóvenes sería: usuarios.stream().filter(usuario -> usuario.getedad() >= 18 && usuario.getedad() < 35).map(usuario -> usuario.get ()).foreach( -> System.out.println ( )); Ejercicios sobre streams NOTA: En la sección anterior no se utilizan todas las operaciones soportadas por los streams (filter, sorted, map, foreach, anymatch, nomatch, allmatch, count). Revisa las transparencias del Tema 6 de teoría para completar la información que aquí aparece y poder implementar los ejercicios propuestos. Crea la clase PruebaStreams en el paquete pruebas con un método main en el que implementaremos la siguiente funcionalidad utilizando los streams y las expresiones lambda. Previo: Copia en el método main de la clase PruebaStreams, el código del programa de la clase PruebaSubasta hasta la creación, e inserción de elementos, en la lista de usuarios. Crea e inserta las subastas en otra colección. 1) Cuenta los usuarios que tienen cuenta de correo en Gmail. Muestra el resultado en la consola. 2) Mostrar por la consola los nombres de usuarios que sean propietarios de subastas ordenados por orden alfabético inverso. 3) Mostrar por la consola los nombres de los productos cuyas subastas hayan recibido alguna puja ordenados alfabéticamente. 4) Mostrar por la consola el nombre de los productos de aquellas subastas que hayan recibido pujas superiores a 50 euros. 5) Consultar si hay usuarios que hayan ganado alguna subasta y que sean propietarios de subastas. 6) Crea un conjunto vacío de pujas, añade a ese conjunto todas las pujas que se hayan realizado en las subastas. 7/8
8 Ejercicios de exámenes anteriores relacionados con Java 8 (Febrero 2015) Utilizando el modelo de procesamiento basado en streams, y supuesta una variable List<Integer> datos; muestra por la consola el número de elementos de la colección que estén comprendidos entre 0 y 10, ambos inclusive. (Junio 2015) Declara un método que pueda aceptar como parámetro un constructor sin argumentos de cualquier colección de cadenas. El método retornará una colección obtenida a partir del constructor con un solo elemento, la cadena vacía. Escribe un ejemplo que muestre el uso de este método. (Julio 2015) Ejercicios: a) Define una variable de tipo predicado que evalúe si un entero es par. b) Utilizando el modelo de procesamiento basado en streams, y el predicado anterior, obtén una lista que contenga sólo los números pares, ordenados de menor a mayor, de una lista de enteros. 8/8
Programación Orientada a Objetos Curso 2014/2015. Práctica 11
Objetivos formativos Previo Programación Orientada a Objetos Curso 2014/2015 Práctica 11 - Nuevas características de Java 8: expresiones lambda, interfaces funcionales, streams. - Crea el paquete practica11
Tema 5 Java 8. Programación Orientada a Objetos Curso 2016/2017
Tema 5 Java 8 Programación Orientada a Objetos Curso 2016/2017 Contenido Motivación. Caso de estudio. Expresiones lamdba. Interfaces funcionales. Streams. Referencias a métodos y constructores. Nuevas
Examen Teórico Convocatoria de Junio de 2012
Examen Teórico Convocatoria de Junio de 2012 Nombre: DNI: Titulación: 1. Sobre el control de errores en Java: a) El siguiente método contiene un error de compilación debido al uso de excepciones. Explica
Tema 6 Patrones de Diseño. Programación Orientada a Objetos Curso 2010/2011
Tema 6 Patrones de Diseño Programación Orientada a Objetos Curso 2010/2011 Contenido Introducción a los patrones de diseño. Patrón del Método plantilla. Patrón Composición. Patrón Estrategia. Clases anónimas
Ejercicio 1 (proyecto prlistas, paquete listas)
PRÁCTICA 3 Curso 2004-05 En esta práctica construiremos y usaremos dos paquetes: el primero, listas, que implementa listas genéricas y el segundo, colas, que implementa colas y colas de prioridades genéricas.
INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)
APRENDERAPROGRAMAR.COM INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C) Sección: Cursos Categoría: Lenguaje de programación Java nivel
Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos
Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende
Estructuras de control selectivas
Práctica 3 Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 2.0.2 Concepto de sentencia y estructura de control El cuerpo de los métodos
EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFAZ CLONEABLE DE JAVA. MÉTODO CLONE() PARA CLONAR OBJETOS. (CU00912C)
APRENDERAPROGRAMAR.COM EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFAZ CLONEABLE DE JAVA. MÉTODO CLONE() PARA CLONAR OBJETOS. (CU00912C) Sección: Cursos Categoría: Lenguaje de programación Java nivel
HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA
Estructura de la Información en Programación I.T.I.G., Matemáticas. Curso 2008/2009 Nombre:... Fecha: / 01 / 2009 HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA Esta hoja de ejercicios nos servirá
Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad. Guillermo Román Díez
Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad Guillermo Román Díez [email protected] Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción a la Recursión
Prueba N o 1. Programación II
UNIVERSIDAD ANDRÉS BELLO 1 Prueba N o 1 Programación II Profesores: José Luis Allende y Carlos Beyzaga. Fecha: 10 de Septiembre de 2013 Nombre: Nota: Instrucciones: Coloque su nombre a todas las hojas.
Ejercicio de Programación Orientada a Objetos Curso 2016/2017 Cursos
Ejercicio de Programación Orientada a Objetos Curso 2016/2017 Cursos Previo. Gestión del tiempo. Para la realización del examen es necesario utilizar fechas. A continuación se dan algunas indicaciones:
PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Cómo podemos compilar desde la línea de comandos la clase Java A que utiliza una librería empaquetada bd.jar? 2. Indica si es correcto el siguiente código. Justifica
Tema 4 Colecciones en Java. Programación Orientada a Objetos Curso 2013/2014
Tema 4 Colecciones en Java Programación Orientada a Objetos Curso 2013/2014 Contenido Colecciones (paquete java.util): Interfaz Collection Interfaz List Interfaz Set InterfazMap Copia de
FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4
Trabajo Práctico Nº 4 Ejercicios Teóricos 1. Indique si las siguientes afirmaciones son verdaderas o falsas a. La programación orientada a objetos hace uso de clases y envío de mensajes entre objetos..
Examen de Programación II (Ingeniería Informática)
Examen de Programación II (Ingeniería Informática) Septiembre 2010 1) Lenguaje C (2 puntos) Escribir el módulo "elimina_substring" (ficheros elimina_substring.h y elimina_substring.c) que defina una única
Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java
Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java Profesor: Jorge Escalona / Tobías Bolívar Email: [email protected] / [email protected] Web: http://estructuradatos.tripod.com 1 Qué
Interfaces. Amparo López Gaona. Septiembre de Amparo López Gaona () Interfaces Septiembre de / 1
Interfaces Amparo López Gaona Septiembre de 2008 Amparo López Gaona () Interfaces Septiembre de 2008 1 / 1 Interfaces Las interfaces Java permiten al diseñador de clases establecer su forma definiendo
Entiendo los métodos de Java equals y hashcode
Todos los días cuando programamos usamos objetos y en muchas ocasiones necesitamos comparar unos con otros. Para ello en muchas ocasiones usamos los métodos de de Java equals y hashcode. Estos métodos
Ingeniería del Software Separación entre Presentación y Lógica del Negocio
Introducción En este laboratorio desarrollaremos una aplicación que verifica si una cuenta y un password son correctos. En dicha aplicación la presentación y la lógica del negocio se definirán en dos capas
! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes
Introducción Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual [email protected]! Qué es la POO?! Un paradigma de programación! Un paradigma es una forma de afrontar
Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez
Algoritmos y Estructuras de Datos Iteradores Guillermo Román Díez [email protected] Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción 1/26 Iteradores Es muy común
INTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C)
APRENDERAPROGRAMAR.COM INTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Programación orientada a objetos
Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual [email protected]! Herencia! Superclase/subclase! super! Modificador protected! Redefinicion de métodos!
FUNDAMENTOS DE PROGRAMACIÓN. Tema 8. Tratamientos Secuenciales II
FUNDAMENTOS DE PROGRAMACIÓN Curso 2015/16 Versión: 1.0.1 Tema 8. Tratamientos Secuenciales II Autores: Miguel Toro, José Riquelme y Mariano González Revisión: profesores de la asignatura Tiempo estimado:
18. Interfaces Declaración de una interfaz
Programación orientada a objetos con Java 191 18. Interfaces Objetivos: a) Definir el concepto de interfaz b) Interpretar el código fuente de una aplicación Java donde aparecen interfaces c) Construir
INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C)
APRENDERAPROGRAMAR.COM INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C) Sección: Cursos Categoría: Lenguaje de programación Java
Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos
Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad
Clases Abstractas e Interfaces
Clases Abstractas e Interfaces Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria [email protected] Objetivos Aprender a crear y utilizar clases y métodos abstractos
Programación Concurrente y Distribuida Ingeniería Informática Facultad de Ciencias Universidad de Cantabria.
Programación Concurrente y Distribuida Ingeniería Informática Facultad de Ciencias Universidad de Cantabria. Documento: Práctica 1 Sopa de Letras Autores: Fecha: Laura Barros J.M. Drake 5-6 Octubre Objetivo
PROGRAMACIÓN GENÉRICA
PROGRAMACIÓN GENÉRICA Lenguajes de Programación - Orientación a Objetos: Progr. Genérica 1 Programación genérica Objetivo: escribir algoritmos genéricos, independientes de las clases concretas de los datos
Concurso: Cuánto sabes de JAVA?
Concurso: Cuánto sabes de JAVA? Motivación: o Para cambiar el ritmo de las jornadas y que no todas las actividades sean charlas o Recordar conocimientos y aprender algo nuevo. o Las preguntas pueden ayudarnos
Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.
Unidad IV Métodos. 4.1 Definición de un método. El polimorfismo, en programación orientada a objetos, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo
Construcciones del Lenguaje Java
Construcciones del Lenguaje Java Autor: Juan Alberto López Cavallotti Versión de Java: 5 / 6 Comentarios Comentario de Línea Comentario Multilínea //Esto es un comentario. /* Esto comenta varias lineas.
Introducción a Java. Dr. (c) Noé Alejandro Castro Sánchez
Introducción a Java Dr. (c) Noé Alejandro Castro Sánchez Programas Java Applets Pueden correr en navegadores Web Agregan funcionalidad a páginas Web Se llega a restringir su funcionalidad (e. g., no pueden:
1. Cuántas sentencias hay en la secuencia principal del siguiente programa?
1. Cuántas sentencias hay en la secuencia principal del siguiente programa? public class PruebaSwitch { System.out.print ("Opcion: "); case 3: System.out.println ("miércoles "); A. 1. B. 4. C. Más de 10.
REPASO ARRAYS O ARREGLOS UNIDIMENSIONALES EN JAVA. EJEMPLOS DE CÓDIGO. (CU00903C)
APRENDERAPROGRAMAR.COM REPASO ARRAYS O ARREGLOS UNIDIMENSIONALES EN JAVA. EJEMPLOS DE CÓDIGO. (CU00903C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I Fecha revisión: 2039 Resumen:
PARA QUÉ SIRVEN LAS INTERFACES JAVA. IMPLEMENTAR UNA INTERFAZ DEL API. VENTAJAS. EJEMPLOS BÁSICOS. (CU00697B)
APRENDERAPROGRAMAR.COM PARA QUÉ SIRVEN LAS INTERFACES JAVA. IMPLEMENTAR UNA INTERFAZ DEL API. VENTAJAS. EJEMPLOS BÁSICOS. (CU00697B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero
Bloque II. Elementos del lenguaje de programación Java
Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida
Sacándole Partido a JUnit Módulo 1. Introducción a las Pruebas
Sacándole Partido a JUnit Módulo 1. Introducción a las Pruebas Ejercicios Resueltos Ejercicio 03. El siguiente código muestra para calcular la potencia de dos de cualquier número con cualquier cantidad
A3F. Polimorfismo. Carlos Fontela
Polimorfismo Carlos Fontela [email protected] Temario Métodos virtuales Métodos abstractos Polimorfismo como concepto Interfaces Clases internas 2c2010 2 cb := CuentaBancaria new. cc := CuentaCorriente
PROGRAMACIÓN EN JAVA
SISTEMAS INFORMÁTICOS INDUSTRIALES curso 2007-2008 PROGRAMACIÓN EN JAVA PRÁCTICA 2: Jerarquía de clases en Java Objetivos Implementar una jerarquía de clases para crear una aplicación en Java Comprender
FUNDAMENTOS DE PROGRAMACIÓN Curso: 2013/14 EXAMEN PARA ALUMNOS PRESENTADOS AL PRIMER PARCIAL PRIMERA PARTE. EJERCICIO 1 Cuestiones (1 punto)
EXAMEN PARA ALUMNOS PRESENTADOS AL PRIMER PARCIAL PRIMERA PARTE EJERCICIO 1 Cuestiones (1 punto) 1 2 3 4 5 6 7 8 9 10 Seleccione la opción correcta en cada caso, teniendo en cuenta que tan sólo puede marcar
Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.
Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está
Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos
Tema 3: Genericidad en Java Tema 3: Genericidad en Java Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general: 1. Definición y Ventajas de la
EL PAQUETE JAVA.UTIL DEL API JAVA. PRINCIPALES INTERFACES Y CLASES: STRINGTOKENIZER, DATE, CALENDAR, HASHSET, TREEMAP, TREESET...
APRENDERAPROGRAMAR.COM EL PAQUETE JAVA.UTIL DEL API JAVA. PRINCIPALES INTERFACES Y CLASES: STRINGTOKENIZER, DATE, CALENDAR, HASHSET, TREEMAP, TREESET... (CU00916C) Sección: Cursos Categoría: Lenguaje de
Tema: Introducción al IDE de Microsoft Visual C#.
Tema: Introducción al IDE de Microsoft Visual C#. Objetivos: El propósito de este tema es que el alumno se familiarice con el entorno de desarrollo de Visual C# Express mientras crea el formulario más
LA CLASE VECTOR DEL API JAVA. MÉTODOS TRIMTOSIZE Y ENSURECAPACITY EJEMPLO Y EJERCICIOS RESUELTOS. (CU00922C)
APRENDERAPROGRAMAR.COM LA CLASE VECTOR DEL API JAVA. MÉTODOS TRIMTOSIZE Y ENSURECAPACITY EJEMPLO Y EJERCICIOS RESUELTOS. (CU00922C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Introducción al lenguaje Java
Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno
Tutorial básico del entorno de desarrollo Eclipse.
Tutorial básico del entorno de desarrollo Eclipse. Arrancar Eclipse. Después de descomprimir la aplicación, dar doble clic sobre el ícono ejecutable para arrancar la aplicación. En caso de que se presente
Tema 1. Herencia y Polimorfismo
ÍNDICE EDA. Unidad didáctica I: Conceptos de Java para Estructuras de Datos Tema 1. Herencia y Polimorfismo 1. Relaciones entre clases: Reutilización del software. 2. La Herencia como soporte Java del
Examen de Métodos de Programación Ingeniería Informática Primera Parte
Examen de Métodos de Programación Ingeniería Informática Primera Parte Cuestión 1. (2 puntos) Se pretende guardar y recuperar matrices de números reales de cualquier dimensión en ficheros binarios de tipos
Unidad Didáctica 6. Tipos List y Set con tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos. Versión 1.0.
Unidad Didáctica 6 Tipos List y Set con tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.1 Índice Estructuras de datos predefinidas en Java (Colecciones)
NETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS
NETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS Como se vio en teoría, la definición de una clase consta de dos partes fundamentales: 1 - La declaración de la clase: Indica el nombre de la clase precedido
PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez
PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Elementos de lenguaje: Identificadores Tipos de datos 2 Tipos de datos primitivos 3 Tipos de datos referenciados Clases Interfaces Arrays
Arquitecturas cliente/servidor
Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?
Curso de Java Introducción a la Programación I
Curso de Java Introducción a la Programación I Jaime Fernández Martín Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Sintaxis Java 2 Salida de datos 3 Entrada de datos Índice 1 Sintaxis Java
Funciones como parámetros, funciones como resultados. Introducción a la Computación Patricia Borensztejn Clase 26
Funciones como parámetros, funciones como resultados Introducción a la Computación Patricia Borensztejn Clase 26 Funciones de orden superior Se llama así a la técnica que permite pasar funciones como parámetros
Estructura de datos y Programación
Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de
El método Sort, nos permitirá ordenar cualquier cosa, que herede de la interfaz IComparable y que implemente el método CompareTo,
Delegados en C# Lo primero que te preguntas es que tipo de problema resuelven los delegados, o sea para que debería aprender a usar delegados? Para responderte esta pregunta, lo mejor es ilustrarlo con
15. Parámetros o argumentos
Programación orientada a objetos con Java 161 15. Parámetros o argumentos Objetivos: a) Profundizar en el concepto de parámetro de una clase e indicar su mecanismo de funcionamiento. b) Interpretar el
! Fundamentos de la POO. ! Comportamiento y estado. ! Clases y objetos en Java
Introducción a la programación orientada a objetos Curso de Programación en Java! Fundamentos de la POO! Comportamiento y estado! Clases y objetos en Java Contenidos Luis Guerra [email protected] Enero 2012
PROGRAMACIÓN EN JAVA
1. INTRODUCCIÓN A LA PROGRAMACIÓN 1.1. Datos, algoritmos y programas 1.1.1. Definición de algoritmo 1.1.2. Datos 1.1.3. Características de un programa 1.2. Paradigmas de programación 1.2.1. Programación
ING1310 Introducción a la Computación. Python. Conceptos Básicos. Carlos Reveco
ING1310 Introducción a la Computación Python Conceptos Básicos Carlos Reveco [email protected] [email protected] Facultad de Ingeniería/Universidad de los Andes/Chile Rev : 254 C.Reveco Facultad
Examen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 31 de agosto de 2012 Disponer sobre la mesa en lugar visible un documento de identificación
El método main de la clase PruebaArbol, empieza creando una instancia de un objeto Árbol vacío y asigna su referencia a la variable árbol
Árboles Las listas enlazadas, pilas y colas son estructuras de datos lineales (es decir, secuencias). Un árbol es una estructura de datos bidimensional no lineal, con propiedades especiales. Los nodos
Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia
Programación orientada a objetos Resumen de Temas Unidad 5: Herencia 5.1 Introducción a la Herencia La herencia es el mecanismo fundamental de relación entre clases en la orientación a objetos. Relaciona
// Método Comunicarse, sera implementado por las clases concretas que hereden de la clase //animal
INTERFACE interface IAnimal { static final int valor=5; // Método Comunicarse, sera implementado por las clases concretas que hereden de la clase //animal public void comunicarse(); abstract class Animal
La implementación se realizará en Java, a partir de un diseño orientado a objetos del problema descrito.
CONTEXTO FUNDAMENTOS DE PROGRAMACIÓN: TRABAJO PRÁCTICO OBLIGATORIO Curso: 2013/14 CASO DE APLICACIÓN: GESTIÓN DE UNIVERSIDADES (ENTREGA 2) Versión: 1.0.1 El trabajo práctico se enmarca en el desarrollo
RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Tema 7.- Fundamentos de la Programación Orientada a Objetos
Tema 7.- Fundamentos de la Programación Orientada a Objetos 7 de enero de 2014 Objetivos Saber definir clases propias. Saber crear objetos de una clase determinada e interactuar con ellos (Problema 1).
Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión III La Sintaxis de Java II... 6 Estructuras de Control... 7 Estructuras de Selección... 8 Sentencia
Programación orientada a objetos I
Introducción Programación orientada a objetos I Curso INEM. Programación en C++ Santiago Muelas Pascual [email protected] Qué es la POO? Un paradigma de programación Un paradigma es una forma de afrontar
5. Sentencias selectivas o condicionales
60 A. García-Beltrán y J.M. Arranz 5. Sentencias selectivas o condicionales Objetivos: a) Describir el funcionamiento de las sentencias selectivas o condicionales (if-else y switch) b) Interpretar el resultado
Guía - Taller # 2 (JAVA)
CEET - Distrito Capital Programa de Formación: ADSI 150752 TRIMESTRE VI Conocimiento de Conocimiento: Aplicar diversos estilos de Programación usando herramientas para Desarrollo Web Instructor: Ing. Espec.
Formato para prácticas de laboratorio
Fecha de efectividad: 2011-1 UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE DE UNIDAD DE APRENDIZAJE
Pruebas de unidad con JUnit
Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro
ALGORITMICA Y PROGRAMACION POR OBJETOS I
ALGORITMICA Y PROGRAMACION POR OBJETOS I Nivel 1 Problemas, Soluciones y Programas Marcela Hernández Hoyos Solucionar un Problema = Construir un Programa Problema Programador Herramientas y Lenguajes Análisis
Patrones de Diseño. Patrón de comportamiento Iterator. Técnicas de Programación - Curso 2007/08
Patrones de Diseño Patrón de comportamiento Iterator Técnicas de Programación - Curso 2007/08 Propósito Proporcionar acceso secuencial a los elementos de un agregado, sin exponer su representación interna
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS TEMA3: Collections e Interfaces Manel Guerrero PROGRAMACIÓN ORIENTADA A OBJETOS Antes que nada veamos W3H1. [W1H3] Array de elementos atomicos // Como ya vimos en W1H3
Examen de Prácticas de Programación Ingeniería Informática
Examen de Prácticas de Programación Ingeniería Informática Junio 2007 1) (2 puntos) Escribir en Java la implementación de los métodos public void escribematrizenfichero(double[][] m, String nomfich)...
Definición. Mónica E. García García Feb 07
Tema 11: Herencia 0 Definición Cuando inicialmente se modelan dos cosas y se tienen datos duplicados y además pudiera darse que el número de métodos también es similar así como la implementación, se requiere
En Java, un arreglo es un grupo de variables (llamados elementos o componentes) que contienen valores, todos del mismo tipo.
Arreglos Los arreglos son estructuras de datos que consisten de elementos de datos relacionados, del mismo tipo. Los arreglos son entidades son entidades de longitud fija: conservan la misma longitud una
Manipulación de Cadenas Introducción a los conceptos de clase e objetos. Nadjet Bouayad-Agha Programación
Manipulación de Cadenas Introducción a los conceptos de clase e objetos Nadjet Bouayad-Agha Programación 2007-2008 Manipulación de Cadenas Acceder a los carácteres de una cadena Sustituir carácteres o
Métodos CON valor de retorno
Métodos Estáticos C# Fundamentos de Programación. Objetivos del tema: Qué es un método? Qué métodos conoces? Métodos que NO devuelven valor. Métodos que SI devuelven un valor. Paso de parámetros. Variables
Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++
Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++ OBJETIVO En este documento se presentan las construcciones básicas de orientación a objetos del lenguaje de programación C++, y recomendaciones
Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL
Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL Cualquier duda sobre el contenido de este tema se puede enviar al foro TEORIA2. 2.1.- El tipo de datos entero (byte,
