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

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

Examen Teórico. Convocatoria de Febrero de 2015

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

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Examen Teórico Convocatoria de Junio de 2012

PROGRAMACIÓN EN JAVA

Prueba N o 1. Programación II

Java. Introducción a la Programación Orientada a Objetos

Estructura de datos y Programación

Guía del Curso IFCD052PO PROGRAMACIÓN EN JAVA

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

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

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

Examen escrito de Programación 1

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

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

Guía práctica de estudio 07: Herencia

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

Curso Informática Lección 4. Instrucciones de control

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

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Introducción a Java. Introducción a Java. Programación I

Examen Teórico. Convocatoria de Julio de 2015

18. Interfaces Declaración de una interfaz

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

Parte I: Programación en un lenguaje orientado a objetos

Clases abstractas e interfaces en Java

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

Patrones de Diseño. Ing. Miguel Angel Cedeño Garcidueñas

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

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

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

PRINCIPIOS DE PROGRAMACIÓN. Mtro. en Ingeniería de Software. Especialidad en e-commerce Ismael Jiménez Hernández

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

Programación orientada a objetos. Introducción

12. Tipos de atributos

Java para programadores

Estructura de Datos Unidad 1: Repaso del Lenguaje Java

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

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

PROGRAMACIÓN EN JAVA

Examen de Programación II (Ingeniería Informática)

Examen de Prácticas de Programación Ingeniería Informática

FACULTAD DE INGENIERÍA

Programación. Test Autoevaluación Tema 6

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

1. (1 punto) Dado el siguiente fragmento en Java:

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

Space Invaders Práctica de la Asignatura de Programación Orientada a Objetos Escenario para el Curso 2011/2012 Febrero de 2012 Versión 1.

Construcciones del Lenguaje Java

Estructuras de control selectivas

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

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

Programa Oficial de Asignatura. Ficha Técnica. Presentación. Competencias y/o resultados del aprendizaje. Contenidos Didácticos

PROGRAMACIÓN GENÉRICA

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

HERENCIA. Problema: Reparar el el coche. Jesús (Valencia) Luis, Mecánico (Valencia) Antonio, Servicio Técnico Ferrari (Madrid)

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

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

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

DISEÑAR APLIC I ACIO I N O ES 1

Clases a Implementar (Paquete xklotski): 1. Clase XKlotskiException: package xklotski;

Examen escrito de Programación 1

Concurso: Cuánto sabes de JAVA?

Ingeniería del Software Separación entre Presentación y Lógica del Negocio

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA con BlueJ

EXAMEN PARA ALUMNOS PRESENTADOS A LA ASIGNATURA COMPLETA

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

PROGRAMACIÓN ORIENTADA POR OBJETOS EN JAVA

CONCEPTO DE INTERFACE Y HERENCIA MÚLTIPLE EN JAVA. IMPLEMENTS. EJEMPLOS Y DIAGRAMAS DE CLASES. (CU00696B)

A3F. Polimorfismo. Carlos Fontela

Guía práctica de estudio 08: Polimorfismo

Problema 1 (2 puntos)

Tema 6 Patrones de Diseño. Programación Orientada a Objetos Curso 2010/2011

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

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

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

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Edwin Andrés Cubillos Vega

INTRODUCCION A LA PROGRAMACION EN JAVA

Transcripción:

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA 71901072 PROGRAMACIÓN ORIENTADA A OBJETOS (GRADO EN INGENIERÍA INFORMÁTICA / TECNOLOGÍAS DE LA INFORMACIÓN) JUNIO 2012 MODELO A NO ESTÁ PERMITIDO EL USO DE MATERIAL ADICIONAL PARTE TEÓRICA - TEST [2,5 PUNTOS]: Sólo una de las respuestas es válida. Las respuestas correctas se puntuarán con +1.0, mientras que las respondidas de manera incorrecta se puntuarán con -0.25. Las no contestadas no tendrán influencia ni positiva ni negativa en la nota. Pregunta 1: Según el texto de la bibliografía básica de la asignatura, indique cuál de las siguientes afirmaciones es a. Los métodos pueden devolver información de algún objeto mediante un valor de retorno. b. Los métodos siempre tienen parámetros con los que obtener la información necesaria. c. A partir de una clase tan solo se puede crear un solo objeto. d. El estado de los objetos se representa mediante los parámetros de su constructor. Pregunta 2: Dado el siguiente fragmento de código, indique cuál de las siguientes afirmaciones es el resultado de su if(" String ".trim() == "String") System.out.println("Igual"); else System.out.println("No Igual"); a. El código compilará e imprimirá Igual. b. El código compilará e imprimirá No Igual. c. El código provocará un error de compilación. d. El código provocará un error en tiempo de ejecución. Pregunta 3: Según el texto de la bibliografía básica de la asignatura, indique cuál de las siguientes afirmaciones es a. Los campos se conocen como variables de objeto. b. El alcance de una variable define la sección de código desde donde la variable puede ser declarada. c. Los constructores permiten que cada objeto sea preparado adecuadamente cuando es creado. d. El tiempo de vida de una variable describe el número de veces que es utilizada en un método. Pregunta 4: Según el texto de la bibliografía básica de la asignatura, indique cuales de las siguientes expresiones resultan verdaderas: 1.! ( 4 < 5 ) 2. ( 2 > 2 ) ( ( 4 == 4 ) && ( 1 < 0 ) ) 3. ( 2 > 2 ) ( 4 == 4 ) && ( 1 < 0 ) 4. ( 2 > 2 )!( ( 4 == 4 ) && ( 1 < 0 ) ) 5. ( 34!= 33 ) &&! false a. Las expresiones 3 y 4. b. Las expresiones 2 y 4. c. Las expresiones 3 y 5. d. Las expresiones 4 y 5. Pregunta 5: Según el texto de la bibliografía básica de la asignatura, indique cuál de las siguientes afirmaciones es a. El lenguaje Java tiene tres variantes del ciclo for : for-each, for y for-do. b. Un ciclo while es similar en su estructura y propósito que el ciclo for-each. c. El tipo de la variable de ciclo no tiene porqué ser el mismo que el tipo del elemento declarado para la colección

que estamos recorriendo con un ciclo. d. Un índice es un objeto que proporciona funcionalidad para recorrer todos los elementos de una colección. Pregunta 6: La siguiente figura muestra una captura de pantalla del editor BlueJ con una línea de código recuadrada. Indica cual de las siguientes afirmaciones es correcta en relación a la línea recuadrada: a. Muestra un error en tiempo de ejecución. b. Muestra un error de compilación. c. Muestra un punto de interrupción. d. Muestra una el lanzamiento de una excepción. Pregunta 7: Según el texto de la bibliografía básica de la asignatura, indique cuál de las siguientes afirmaciones es a. Un objeto es inmutable si su contenido o su estado no puede ser cambiado una vez que se ha creado. b. Un objeto de tipo String puede ser modificado una vez que está creado, por tanto no es un ejemplo de objeto inmutable. c. La clase String tiene un método de nombre trim que permite modificar caracteres en cualquier posición de una cadena. d. Como regla general, las cadenas de texto de tipo String se suelen comparar mediante el operador ==. Pregunta 8: Dado el siguiente fragmento de código, indique cuál de las siguientes afirmaciones es el resultado de su class Test public static void main (String args []) int n, c = 1, serie = 5;

System.out.print ("Cantidad de terminos: "); n = 7; while (c <= n) System.out.print ("," + serie); serie += 5; c++; a. Cantidad de terminos: 5,10,15,20,25,30, b. Cantidad de terminos:,5,10,15,20,25,30 c. Cantidad de terminos:,5,10,15,20,25,30,35 d. Cantidad de terminos:,5,10,15,20,25,30,35,40 Pregunta 9: Según el texto de la bibliografía básica de la asignatura, indique cuál de las siguientes afirmaciones es a. Las colecciones de objetos son objetos que pueden almacenar un número predeterminado e invariable de otros objetos. b. Un iterador es un objeto que proporciona funcionalidad para recorrer todos los elementos de una colección. c. Un ciclo consiste en la escritura repetida de un bloque de sentencias. d. Un arreglo (array) es un tipo especial de colección que puede almacenar un número variable de elementos. Pregunta 10: Según el texto de la bibliografía básica de la asignatura, indique cuál de las siguientes afirmaciones es correcta en relación a la clase Vector de Java: a. Es Final b. Implementa java.util.list c. Es serializable d. Dispone de un solo constructor Pregunta 11: Dado el siguiente fragmento de código, indique cuál de las siguientes afirmaciones es el resultado de su public class Test private int i = getj(); private int j = 10; private int getj() return j; System.out.println((new Test()).i); a. Error de compilación en relación a la restricción de acceso de variables privadas en la clase Test. b. Error de compilación en relación a las referencias realizadas. c. Sin errores de compilación, su salida es 0. d. Sin errores de compilación, su salida es 10. Pregunta 12: Según el texto de la bibliografía básica de la asignatura, indique cuál de las siguientes afirmaciones es a. La interfaz de una clase describe lo que hace la clase y cómo puede usarse pudiendo mostrar parte de su implementación. b. Un mapa es una colección que almacena entradas de ternas de valores llave/valor/posición.

c. La documentación de una clase debe ser suficientemente detallada como para que otros programadores puedan usar la clase sin necesidad de leer su implementación. d. Los modificadores de acceso definen las restricciones de uso de un objeto para determinados métodos, constructores o campos. Pregunta 13: Dado el siguiente fragmento de código, indique cuál de las siguientes afirmaciones es el resultado de su public class Test char c = -1; System.out.println(c); a. La expresión char c = -1; provocará un error de compilación debido a que el rango de la clase char es 0-2 (16-1). b. No habrá error de compilación, la salida será -1. c. No habrá error de compilación, la salida no será ningún carácter ascii. d. No habrá error de compilación, la salida será un carácter Unicode. Pregunta 14: Según el texto de la bibliografía básica de la asignatura, indique cuál de las siguientes afirmaciones es a. Una superclase es una clase que es implementada por otra. b. Una subclase es una clase que implementa a otra clase. c. Las clases que están vinculadas mediante una relación de herencia forman una jerarquía de herencia. d. La herencia nos permite heredar pero no reutilizar en un nuevo contexto clases que fueron escritas previamente. Pregunta 15: Dado el siguiente fragmento de código, indique cuál de las siguientes afirmaciones es el resultado de su import java.awt.*; public class TestFrame extends Frame public TestFrame() setlayout(new GridLayout()); for(int i = 1 ; i <= 4 ;++i) add(new Button(Integer.toString(i))); pack(); setvisible(true); TestFrame tf = new TestFrame(); a. El código compila, su ejecución provoca que todos los botones aparezcan en una sola columna. b. El código compila, su ejecución provoca que todos los botones aparezcan en una sola fila. c. El código compila, su ejecución provoca que todos los botones se monten uno encima del otro y tan solo sea visible el último. d. El código compila, pero se produce un error en tiempo de ejecución cuando se añaden los componentes.

PARTE PRÁCTICA [6,5 PUNTOS]: La práctica del presente curso ha sido una versión del legendario arcade Space Invaders. A continuación se muestra la propuesta del juego tal y como se solicitaba para la práctica del curso. En el juego aparecen cuatro clases de elementos (Ver Figura): 1. Naves alienígenas o UFOs, que se mueven de izda. a dcha. y van bajando hacia abajo poco a poco. Esporádicamente lanzan misiles. 2. La nave guardián es controlada por el jugador. 3. El láser disparado por la nave guardián (trayectoria ascendente). Cuando el láser de la nave alcanza una nave enemiga, ésta desaparece del juego. 4. Los misiles disparados por los UFOs (trayectoria descendente). Cuando un misil alcanza a la nave, finaliza el juego. a) [2 puntos] Diseñar utilizando un paradigma orientado a objetos, los elementos necesarios para la aplicación explicada de la práctica durante el curso. Es necesario identificar la estructura y las relaciones de herencia y de uso de las clases necesarias para almacenar y gestionar esta información. Debe hacerse uso de los mecanismos de herencia siempre que sea posible. Se valorará un buen diseño que favorezca la reutilización de código y facilite su mantenimiento. b) [1,5 puntos] Implementa la clase NaveGuardian. Especifica sus atributos y métodos y justifica las decisiones de implementación que creas importantes. c) [1,5 puntos] Implementa la siguiente regla del juego: Varias filas de naves alienígenas o UFOs avanzan hacia la base defensora, con movimientos oscilatorios de izquierda a derecha, bajando poco a poco. Especifica sus atributos y métodos y justifica las decisiones de implementación que creas importantes. d) [1,5 puntos] Indique los cambios que serían necesarios en el diseño y programa para permitir que cada nave alienígena se moviera según una trayectoria independiente del resto de naves alienígenas pudiendo moverse libremente en las cuatro coordenadas (arriba, abajo, izquierda y derecha). Las naves alienígenas no podrían ocupar el mismo espacio de coordenadas, por tanto deberían chocar y cambiar su dirección.