Examen Teórico. Convocatoria de Febrero de 2018

Documentos relacionados
Examen Teórico. Convocatoria de Julio de 2015

Examen Teórico. Convocatoria de Febrero de 2015

Examen Teórico Convocatoria de Junio de 2012

Examen Teórico. Convocatoria de Febrero de 2016

PROGRAMACIÓN ORIENTADA A OBJETOS 1/7/2009. Examen de Java. Nombre: DNI: Titulación:

Programación orientada a objetos

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:

Diseño de tipos Igualdad, representación, código, copia y relación de orden

Programación Orientada a Objetos Curso 2014/2015. Práctica 11

Tema 3 Herencia en Java Parte 2. Programación Orientada a Objetos Curso 2015/2016

Programación Orientada a Objetos Curso 2015/2016. Ejercicios sobre colecciones y Java 8

Ejercicio 1 (proyecto prlistas, paquete listas)

Ejercicio de Programación Orientada a Objetos Curso 2016/2017 Exámenes

FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4

CLAVE EXAMEN: a cd. c u r s o r = c u r s o r. g e t S i g u i e n t e ( ) ; p o s i c i o n ++;

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

Tema 3 Herencia en Java Parte 2. Programación Orientada a Objetos Curso 2015/2016

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

Introducción a Java. Fernando Cerezal López. 24 Noviembre 2005

2. Tratamiento de objetos con JAVA

HOJA DE EJERCICIOS 4 INTERFACES Y CLASES ABSTRACTAS EN JAVA Y C++

a) Reescribir P1 introduciendo un error sintáctico (de compilación), otro de ejecución, y

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia

EXAMEN PARA ALUMNOS PRESENTADOS A LA ASIGNATURA COMPLETA

HERENCIA (2ª parte) En Java todas las clases derivan de otra, aunque no se diga explícitamente.

Interfaces. Amparo López Gaona. Septiembre de Amparo López Gaona () Interfaces Septiembre de / 1

ANEXO Tema 5: Ejercicios Java 8

Características Avanzadas en C# Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

FACULTAD DE INGENIERÍA

Ejercicios de Lenguaje Java y Entorno de Desarrollo

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño

SOBREESCRIBIR MÉTODOS EN JAVA: TOSTRING, EQUALS. EJEMPLOS Y EJERCICIOS RESUELTOS. COMPARAR OBJETOS. (CU00694B)

18. Interfaces Declaración de una interfaz

Programación Orientada a Objetos (Grado en Ingeniería Informática y Grado en Ingeniería en Tecnologías de la Información - UNED)

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

2ª Parte: Problemas (5 puntos sobre 10)

Introducción a Java - Ejercicios

Tema 6 Java 8. Programación Orientada a Objetos Curso 2014/2015

Tema 3: Herencia en C# Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

c) Explicar qué es un BreakPoint en Netbeans y para qué sirve. 0,5 punto

Práctica 2. Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones

Tema 6 Java 8. Programación Orientada a Objetos Curso 2015/2016

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Índice PRÓLOGO... XVII CAPÍTULO 1. FUNDAMENTOS DE JAVA Características de Java Origen y evolución... 1

IMPLEMENTACIÓN DE CONCEPTOS P.O.O. EN JAVA

Guía práctica de estudio 07: Herencia

PARTE TEÓRICA - TEST [2,5 PUNTOS]:

Java en 2 horas. Rodrigo Santamaría

Concurso: Cuánto sabes de JAVA?

Reutilización con Delegación y Herencia

16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz

Tema 5 Programación Funcional y Streams. Programación Orientada a Objetos Curso 2017/2018

EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFAZ CLONEABLE DE JAVA. MÉTODO CLONE() PARA CLONAR OBJETOS. (CU00912C)

Prueba N o 1. Programación II

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

Introducción a Java. Dr. (c) Noé Alejandro Castro Sánchez

Definición. Mónica E. García García Feb 07

Ejercicio de Programación Orientada a Objetos Curso 2016/2017 Cursos

Sólo una opción es correcta en cada pregunta. Cada respuesta correcta suma 1 4. puntos. Cada respuesta incorrecta resta 1 12

Conceptos más avanzados de Programación Orientada a Objetos

Soluciones. boolean pruebaiteraseriegeometrica () { Serie s= new SerieGeometrica (1, 2); return (s.iterator() instanceof IteraSerieGeometrica); }

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.

POO: Clases y objetos

Programación Orientada a Objetos Curso 2010/2011

Tema 2: Clases y Objetos

Programación Tema 4: Métodos. Programación DIT-UPM

Clases y herencia. FJP Unidad 8. Diseño de clases

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

Guía práctica de estudio 08: Polimorfismo

PROGRAMACIÓN EN JAVA

2º Parcial. Bloque I. Preguntas cortas LPOO (C++, C#, Java) Nombre: DNI: Titulación:

Curso de Java POO: Programación orientada a objetos

Ejercicios de tratamiento de errores

HOJA DE EJERCICIOS 3 HERENCIA ENTRE CLASES Y POLIMORFISMO DE MÉTODOS

Herencia. Implementación en Java

INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00924C)

Examen Práctico Convocatoria de Junio de 2015

PROGRAMACIÓN GENÉRICA

Tema 1. Herencia y Polimorfismo

FUNDAMENTOS DE PROGRAMACIÓN Curso: 2013/14 EXAMEN PARA ALUMNOS PRESENTADOS AL PRIMER PARCIAL PRIMERA PARTE. EJERCICIO 1 Cuestiones (1 punto)

UNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA

Arrays, Cadenas y Vectores Tipos Genéricos

INTRODUCCIÓN A LA POO EN C++

Fundamentos de Programación

Clases Java para comunicaciones en red

Tema 4- Representación Enlazada

CLASE 9 -HERENCIA Y POLIMORFISMO

Programación Dirigida a Objetos. MATERIAL COMPLEMENTARIO Tema 5.- Herencia

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

INTERFACE COLLECTION DE JAVA.UTIL DEL API JAVA. EJERCICIOS Y EJEMPLOS RESUELTOS. MÉTODOS ADD, REMOVE, SIZE. STREAMS (CU00917C)

Java Básico. Polimorfismo. Copyright

Examen de Fundamentos de Computadores y Lenguajes

Universidad de Cantabria

A3F. Polimorfismo. Carlos Fontela

Transcripción:

Examen Teórico Convocatoria de Febrero de 2018 Nombre: DNI: Grupo: 1. Dado un proyecto Java en Eclipse que tiene como clase principal proyecto.programa y requiere de la librería matemática de Apache commons-math.jar, responde de forma razonada a las siguientes cuestiones: a) Suponiendo que estamos situados en la raíz del proyecto Eclipse, sería correcta la ejecución de la aplicación con el siguiente comando? > java cp bin proyecto.programa b) En qué directorio se encuentra la clase principal? c) Qué diferencia hay entre las siguientes declaraciones? import proyecto.programa; import proyecto.*; import static proyecto.programa.*;

2. Dado el siguiente código, contesta a las siguientes preguntas justificando las respuestas: class A { public A(){ print(); void print(){ System.out.println("A"); class B extends A { void print() {System.out.println("B"); public class Prueba { public static void main(string[] args) { A oa = new B(); oa.print(); a) Es correcto que B no implemente ningún constructor? b) Cuál es el resultado de la ejecución del código anterior? c) Supuesta otra clase C que hereda también de A es posible modificar la signatura (visibilidad, tipo de retorno, nombre, parámetros) del método print si se redefine en C?

3. El método abrirconexion devuelve un objeto URLConnection que permite comunicarse con una URL. Dado que el constructor de la clase URL declara que puede lanzar la excepción MalformedURLException (descendiente de IOException) y que el método openconnection declara que puede lanzar la excepción IOException, el siguiente código no compila: public URLConnection abrirconexion(string urlcadena) { URL url = new URL(urlCadena); URLConnection urlconnection = url.openconnection(); return urlconnection; a) Modifica el método para que compile y no lance ninguna excepción sino que devuelva el valor null en el caso de que se produzca algún error durante la ejecución. b) Modifica el método para que compile dejando pasar las excepciones que se produzcan en la ejecución. Explica las diferentes alternativas. c) El método abrirconexion tiene como requisito que la cadena que se pase como parámetro tiene que ser significativa, esto es, debe ser distinta de null y distinta de la cadena vacía. Incluye el control de precondiciones en el método.

4. Contesta de forma razonada a las siguientes cuestiones: a) Cómo está implementado el método clone en las colecciones? Ilustra la respuesta con un ejemplo utilizando un diagrama. b) En el código que se muestra a continuación, la conversión de tipos (casting) al resultado de la llamada al método clone sobre la lista de puntos lo marca el compilador como un warning. Explica por qué. public static void main(string[] args) { LinkedList<Punto> puntos = new LinkedList<Punto>(); //... se crean y añaden objetos punto a la lista LinkedList<Punto> copia = (LinkedList<Punto>)puntos.clone(); c) Dada una variable var escribe un fragmento de código que consulte si el tipo dinámico de la variable es A y otro en el que se pregunte si es compatible con A.

5. Contesta a las siguientes preguntas justificando la respuesta: a) En Java 8, qué declaraciones pueden formar parte de una clase abstracta y no de una interfaz? b) Dada la declaración de la siguiente interfaz: interface Proveedor { Object getdato(); Programa una clase que implemente la interfaz y que aplique la regla covariante. c) Qué beneficio tiene el que las colecciones implementen la interfaz Iterable?

6. Implementa un método de clase que reciba como primer parámetro una colección de cadenas donde se van a añadir todas las cadenas que se pasan como segundo argumento (argumento variable). Escribe un fragmento de código que muestre su uso.

7. Sea Tipo una clase abstracta, dado el siguiente código, contesta de forma razonada a las siguientes cuestiones: Tipo o1 = XXX; OtroTipo o2 = (OtroTipo) o1; a) Puede ser OtroTipo también una clase abstracta? b) Qué relación existe entre OtroTipo y Tipo para que el casting sea correcto en tiempo de compilación? c) Por qué podríamos sustituir XXX para que el casting falle en tiempo de ejecución? Cómo indica Java el fallo en el casting?

8. En relación a las colecciones de Java, contesta de forma razonada a las siguientes preguntas: a) Hemos estudiado que los métodos equals y hashcode se tienen que redefinir de forma consistente en una clase. Qué significa esto? Por qué tiene que cumplirse esta condición? b) Dada la construcción de los siguientes objetos: Integer[] array = new Integer[10]; ArrayList<Integer> lista = new ArrayList<Integer>(10); Escribe el código Java que: - Muestre en la consola el tamaño de cada colección, indicando qué se imprimirá en cada caso. - Consulta el elemento que hay en la posición 1 en cada colección, indicando el resultado de la ejecución.

9. Dada la clase java.time.localdate de Java y sea la variable fechas una colección de objetos de esta clase. Utiliza el procesamiento basado en streams para programar los siguientes casos: a) Almacena en una lista todas las fechas entre 2013 y 2015 ordenadas atendiendo al orden natural. b) Cuenta todas las fechas del año 2015. c) Consulta si existe alguna fecha cuyo año sea 2001. Nota: la clase LocalDate dispone de los métodos de instancia isafter, isbefore, getyear.

10. En relación a la características de programación funcionai de Java 8: a) Implementa un método genérico que se denomine imprimedatosutiles que reciba como parámetro una lista y un predicado y que imprima en la consola todos los elementos de la lista que cumplan el predicado que se pasa como parámetro. Es requisito que el recorrido se haga con un iterador explícito. b) Escribe un método de prueba (main) que cree una lista de números e imprima los números impares. Para ello se debe llamar al método del apartado a) y utilizar expresiones lambda para definir el predicado.