UOC Examen
UOC Examen
UOC Examen
Página 1 de 8
Prueba de síntesis 2020/21-1
Asignatura Código Fecha Hora inicio
Diseño y programación orientada a objetos 75.564 10/1/2021 10:30
Enunciados
Pregunta 1 2 3 4 5 6 7 8 9 10
Respuesta C C A A C C D A B D
1. ¿Cuáles son los elementos que definen a un objeto a través de una clase?
a. Abstracción, herencia y polimorfismo.
b. Atributos y asociaciones.
c. Atributos y métodos.
d. Ninguna de las respuestas anteriores.
3. La capacidad para definir varios métodos utilizando el mismo nombre, pero usando diferentes tipos y/o
número de parámetros se llama…
a. Sobrecarga.
b. Sobrescritura.
c. Polimorfismo.
d. Encapsulación.
5. ¿Cuál de las siguientes afirmaciones NO es cierta sobre los diagramas de clase UML?
a. El símbolo del modificador de acceso "default" (i.e. por defecto, sin modificador) es ~.
b. Las clases y métodos abstractos se representan en cursiva.
c. Lo habitual es escribir los atributos constantes en upper camel case, p.ej. MaxNumPlayers,
TimeElapsed, etc.
d. Los miembros estáticos se representan con un subrayado.
Página 2 de 8
Prueba de síntesis 2020/21-1
Asignatura Código Fecha Hora inicio
Diseño y programación orientada a objetos 75.564 10/1/2021 10:30
8. En Java, para invocar a un método de la clase padre desde una subclase que sobrescribe dicho método
debemos usar la palabra clave (keyword):
a. super.
b. self.
c. this.
d. Ninguna de las anteriores.
9. Java no necesita un operador delete como sí utiliza C++ para liberar memoria porque…
a. el programador puede escribir sus propios destructores.
b. utiliza un gestor de memoria llamado garbage collector.
c. los objetos se ubican en el stack.
d. Todas las anteriores son ciertas.
Página 3 de 8
Prueba de síntesis 2020/21-1
Asignatura Código Fecha Hora inicio
Diseño y programación orientada a objetos 75.564 10/1/2021 10:30
Pregunta 1 2 3 4
Respuesta (V/F) F
1. En Java, una clase creada por nosotros no es subclase de una superclase a menos que la definamos con
la palabra reservada extends.
F. En primer lugar el String s1 se define a nivel de la clase String siendo objeto ocupando su propio espacio
en el heap. En el segundo lugar se define el String s2 como un String literal compartiendo el heap con el
conjunto de strings creados en esta forma. Por tanto al comparar diferentes posiciones de memoria será
false el resultado para que fuese true debería haberse usado s1.equals(s2);
Página 4 de 8
Prueba de síntesis 2020/21-1
Asignatura Código Fecha Hora inicio
Diseño y programación orientada a objetos 75.564 10/1/2021 10:30
4. En Java, tanto los métodos declarados como private como aquellos declarados como static no
pueden ser sobrescritos.
V. Verdadero. Un método private no puede ser sobrescrito porque ni tan siquiera es visible
desde la subclase. En el caso de los métodos static, éstos pertenecen a la clase, no al objeto
en sí, por lo que pueden invocarse sin necesidad de crear ninguna instancia/objeto. Por este
motivo, no tiene sentido que se pueda sobrescribir.
Pregunta 1 2 3 4
Respuesta B C B D
b. Wee!
I’m still running.
c. Foo!
Página 5 de 8
Prueba de síntesis 2020/21-1
Asignatura Código Fecha Hora inicio
Diseño y programación orientada a objetos 75.564 10/1/2021 10:30
Wee!
d. Foo!
Wee!
I’m still running.
P1. B. El main invoca foo() y éste llama a bar() que lanza una excepción con el mensaje
"Wee!" que a su vez es propagado por foo(), así pues "Foo!" nunca se ejecuta el println
del método foo(). Ahora estamos en el main, concretamenter en el catch que coge la excepción
lanzada desde bar(), imprime el texto "Wee!" y posteriormente ejecuta el println que hay al
final del método main.
a. El atributo name puede ser accedido a través de un objeto Customer desde cualquier objeto
de otra clase, siempre y cuando esa clase esté en el mismo paquete que la clase Customer.
b. La clase Customer no puede ser heredada.
c. La clase Customer no puede ser instanciada.
d. Todas las subclases de Customer deben codificar el método buy.
Página 6 de 8
Prueba de síntesis 2020/21-1
Asignatura Código Fecha Hora inicio
Diseño y programación orientada a objetos 75.564 10/1/2021 10:30
¿Qué tipo de relación/asociación de las vistas en la asignatura hay entre las clases A y B?
a. Una asociación de agregación.
b. Una asociación de composición.
c. Una asociación binaria bidireccional.
d. Una asociación binaria unidireccional.
Y sabiendo que:
• El constructor de la clase Animal asigna el valor "Eddie" al atributo name.
Página 7 de 8
Prueba de síntesis 2020/21-1
Asignatura Código Fecha Hora inicio
Diseño y programación orientada a objetos 75.564 10/1/2021 10:30
• Los métodos greeting de Dog y Cat imprimen por pantalla "Woof!!" y "Meow!!",
respectivamente.
• En el caso del método greeting con argumento de la clase Dog, imprime por pantalla
"Woof!!" más el valor del atributo name del animal pasado como argumento, p.ej. "Woof
Bob!!"
Para el siguiente trozo de código:
Núm. Línea Código
1 Animal animalDog = new Dog();
2 animalDog.greeting();
3 Dog dog1 = (Dog) animalDog;
4 dog1.greeting();
5 dog1.greeting(animalDog);
6 animalDog.greeting(dog1);
Indica cuál es la afirmación correcta:
a. Línea 2 imprime "Woof!!", línea 4 imprime "Woof!!", línea 5 imprime "Woof Eddie!!"
y línea 6 imprime "Woof Eddie!!".
b. El programa da un error en tiempo de compilación porque desde el segundo método
greeting de la clase Dog no se puede acceder al atributo name del objeto pasado como
parámetro.
c. Línea 2 imprime "Woof!!", línea 4 imprime "Woof!!", línea 5 imprime "Woof null!!"
y línea 6 imprime "Woof null!!".
d. El programa da un error en tiempo de compilación en la línea 6 porque desde animalDog no
se puede invocar al método greeting(Animal animal).
P4. D. El tipo estático de animalDog es Animal y, por lo tanto, para invocar a los métodos de
un objeto de tipo Dog (su tipo dinámico) primero deben estar definidos en la superclase. Es una
de las reglas del polimorfismo. Como D es cierta, entonces A y C son falsas.
La respuesta B es falsa porque name es protected en Animal y es visible desde la subclase
Dog.
Página 8 de 8