Autor Tema: Exámenes resueltos programación orientada objetos Java UNED Ingenier Informática  (Leído 222226 veces)

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
Re:preguntas examen programación orientada a objetos uned
« Respuesta #160 en: 21 de Agosto 2012, 09:18 »
Gracias Susana. Me canso como todo el mundo  :o, la cosa es ir poquito a poco  :)

Para ser más precisos -- > solo parar para coger carrerilla  ;D

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
¿cómo se puede invocar un método estático en java?
« Respuesta #161 en: 22 de Agosto 2012, 00:16 »
PREGUNTA: Un método estático puede invocarse:

a) De una manera, sobre un objeto.
b) De una manera, sobre la clase.
c) De dos maneras, sobre un objeto o sobre la clase
d) De ninguna manera por su carácter estático.



RESPUESTA: de dos maneras: sobre un objeto, o sobre la clase. Se admiten las dos formas.

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
conocer numero de elementos de un array en java
« Respuesta #162 en: 26 de Agosto 2012, 01:40 »
PREGUNTA: Para conocer el número de elementos en un array en java se usa la invocación

a) array.length, invocamos un campo de la variable que referencia al objeto.
b) array.length(), invocamos un método de la clase.
c) array.size, invocamos un campo del objeto.
d) array.size(), invocamos un método del objeto.


RESPUESTA: este es un caso un poco singular, igual que los arrays son objetos especiales en java. La respuesta correcta es la a), usamos el campo length de los objetos de la clase, campo que "singularmente" tiene acceso público. ¡Esto hay que aprendérselo!

Enrique González Gutiérrez

  • Experto
  • *****
  • Mensajes: 1279
  • Tao Te Ching
    • Ver Perfil
Re:preguntas examen programación orientada a objetos uned
« Respuesta #163 en: 27 de Agosto 2012, 11:18 »
Muchas gracias por tus aportaciones nosferacento.

Un saludo.
Responsable de departamento técnico de aprenderaprogramar.com

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
Re:preguntas examen programación orientada a objetos uned
« Respuesta #164 en: 28 de Agosto 2012, 09:19 »
Gracias a vosotros por proporcionar este espacio!

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
campos que conoce una subclase java
« Respuesta #165 en: 09 de Septiembre 2012, 11:19 »
PREGUNTA: ¿Una subclase conoce un campo público de su superclase?


RESPUESTA: Sí debe conocerlo, pues si con protected basta, con public basta más todavía.
« Última modificación: 14 de Septiembre 2012, 12:29 por nosferacento »

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
caracter nulo en java
« Respuesta #166 en: 14 de Septiembre 2012, 12:14 »
PREGUNTA: Dado el siguiente código ¿cuál es el contenido de la variable c?

char c = '\0';
System.out.println (c);




RESPUESTA: El contenido es el carácter nulo. No tiene representación por pantalla, al igual que el string nulo “” no tiene representación por pantalla.

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
diferencias entre Vector y ArrayList java
« Respuesta #167 en: 02 de Octubre 2012, 13:35 »
PREGUNTA: Indicar si la siguiente afirmación es verdadera o falsa:

"Los vectores u objetos de la clase Vector son bastante similares a los ArrayList. Las diferencias hay que buscarlas a nivel interno."




RESPUESTA: es verdadera. Tener en cuenta que en general la clase ArrayList es más usada y recomendada que la clase Vector precisamente por esas diferencias que presenta a nivel interno.
« Última modificación: 28 de Septiembre 2013, 18:15 por nosferacento »

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
clase vector coleccion y lista
« Respuesta #168 en: 05 de Noviembre 2012, 08:50 »
PREGUNTA: Indicar si la siguiente afirmación es verdadera o falsa:

"La clase Vector de Java define un tipo de colección y un tipo de lista. "


RESPUESTA:

Es verdadera, hemos dicho que la clase vector tiene gran similitud con ArrayList, y al igual que ArrayList es una colección y un tipo de lista.
« Última modificación: 28 de Septiembre 2013, 18:16 por nosferacento »

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
valor o contenido de elementos de array al crearlos con new en java
« Respuesta #169 en: 31 de Diciembre 2012, 10:09 »
PREGUNTA: ¿Los elementos de un array tienen algún contenido si solamente hemos declarado y creado el array con una instrucción new, o se generará un error en tiempo de ejecución si tratamos de usar algún elemento sin haberlo inicializado con un contenido?



RESPUESTA: Los elementos de un array se inicializan al valor por defecto del tipo correspondiente (cero para valores numéricos, el carácter nulo para char, false para boolean, null para Strings y para referencias). Por tanto, un array tiene contenido certero desde el momento en que es creado con la instrucción new.

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
paso por valor o por variable de arrays en Java
« Respuesta #170 en: 04 de Enero 2013, 09:07 »
PREGUNTA: Un array que es parámetro de un método en Java:

a) Se pasa por valor, de ahí que no sea modificable dentro del método

b) Se pasa por referencia, de ahí que sea modificable dentro del método

c) Se pasa por valor y es modificable dentro del método

d) Se pasa por referencia pero no es modificable dentro del método



RESPUESTA: La opción correcta es la c). Como todos los objetos, los arrays se pasan como argumentos a los métodos por valor. No obstante, el array es modificable dentro de un método debido a que lo que se pasa por valor es la referencia al objeto (referencia que no podemos modificar), pero si manipulamos el objeto en lo que es su contenido o atributos, manipulado queda.

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
operador de disyunción en cortocircuito o evaluación perezosa java
« Respuesta #171 en: 08 de Enero 2013, 00:13 »
PREGUNTA: Dada la expresión:   op1 || op2 podemos afirmar que:


a) op2 se evaluará siempre
b) op2 no se evaluará nunca
c) op2 se evaluará a veces
d) El operador no es válido en java



RESPUESTA: la opción correcta es la c). op2 se evaluará en algunos casos, pero no en todos. Con este operador se obtiene true si op1 o op2 son verdaderos; si op1 es verdadero no se evalúa op2 y se devuelve verdadero. Si op1 es falso se evalúa op2 y se devuelve el valor de verdad de op2. Esta forma de operación se denomina evaluación en cortocircuito o evaluación perezosa. No se evalúa op2 excepto cuando resulta necesario. Tener en cuenta que op1 y op2 pueden representar llamadas a funciones complejas o procesos complejos, por tanto no procesar algo que no es necesario supone ganar en eficiencia.

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
PREGUNTA:   ¿Los parámetros en Java se pasan por valor o por referencia?



RESPUESTA:

A veces se piensa erróneamente que los tipos primitivos pasan por valor y los objetos por referencia, pero esto no es así. Todo parámetro pasa por valor.

La confusión radica en que cuando pasamos un tipo primitivo, este no es modificable dentro del método. En cambio, al pasar un objeto, sí se pueden producir modificaciones dentro del método. Pero la realidad es que cuando pasamos el parámetro no pasamos el objeto en sí, sino una referencia al objeto, y esta referencia es la que pasa por valor y funciona como una copia dentro del método, resultando que los cambios dentro del método no son conocidos luego fuera de él.


Array

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Hola, ante todo quería decirte que me he registrado sólo para darte las gracias por tus preguntas y respuestas. No puedes imaginarte lo que nos ayudan a los que andamos perdidos con los exámenes de POO.
Así que mil gracias!
Y ya que estoy aquí me gustaría aportar mis soluciones al examen de POO uned informática de septiembre 2012, que adjunto. Son estas:
ABBBBDBAADCDABC
Por si a alguien le sirven o quieren discutirlas.
Un saludo.

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
precedencia de operadores ++ y -- en operaciones complejas java
« Respuesta #174 en: 20 de Mayo 2013, 23:31 »
¿Qué tal? Supongo que sacas el examen de septiembre de 2012 porque estás estudiando para la convocatoria de junio de 2013, así que suerte. Voy a ver si puedo revisar las respuestas para ver si coincidimos.

Para empezar con la pregunta 7 (revisada, gracias a Array):

Dada la siguiente instrucción: x = y--;
¿Cuál de las siguientes afirmaciones es verdadera después de ejecutarse la instrucción?

a) La instrucción da un error de compilación
b) x > y
c) x == y
d) x < y


RESPUESTA:

Parece una pregunta tonta pero si ejecutamos este código seguramente deje de parecerlo:

int x=1;
int y = 3;
x = y--;
System.out.println ("x vale " + x);
System.out.println ("y vale " + y);

El resultado es x vale 3, y vale 2.

En cambio si ejecutamos:

int x=1;
int y = 3;
x = --y;
System.out.println ("x vale " + x);
System.out.println ("y vale " + y);

El resultado es x vale 2, y vale 2.

La respuesta correcta es por tanto (una vez revisada, gracias a Array) la b), es decir, x > y.

La justificación la dan en los Java tutorials así:

The increment/decrement operators can be applied before (prefix) or after (postfix) the operand. The code result++; and ++result; will both end in result being incremented by one. The only difference is that the prefix version (++result) evaluates to the incremented value, whereas the postfix version (result++) evaluates to the original value. If you are just performing a simple increment/decrement, it doesn't really matter which version you choose. But if you use this operator in part of a larger expression, the one that you choose may make a significant difference.

Lo cual viene a decir que en una asignación tipo k = t++; primero se ejecuta k = t y luego se ejecuta t++, quedando k y t con distintos valores.

En cambio en una asignación tipo k = ++t; primero se ejecuta ++t y luego k = t quedando k y t con iguales valores.

El caso es que si yo estoy programando escribo k = t+1; y me quedo tranquilo. Pero para el examen habrá que tener esto en cuenta por si acaso.

« Última modificación: 04 de Junio 2013, 11:01 por nosferacento »

Array

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Recopilando preguntas de este foro, por si a alguien le interesa, estas serían las respuestas a los exámenes de POO Uned informática:
Junio 2011 A:
CCBAACBCCCBCBDD
Junio 2011 B:
CCBDDDABCBDCDBB
Septiembre 2011:
BCBCACBCDDAADCC
Junio 2012 A:
ABCDBCACBBCCACB
Junio 2012 B:
ACBDBBBDBCACDDA
Septiembre 2012:
ABBBBDBAADCDABC

No son oficiales, salvo Junio 2012 A, publicado en este foro. Así que son discutibles.

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
diferencia entre sobrecarga y sobreescritura
« Respuesta #176 en: 04 de Junio 2013, 10:59 »
Gracias a Array por sus aportaciones para el foro.

PREGUNTA: ¿Cuál es la diferencia entre sobrecarga y sobreescritura?


RESPUESTA:

Si revisamos las definiciones formales de sobrecarga y sobreescritura tendríamos:

Sobrecarga: Cuando más de un constructor o método tienen el mismo nombre pero distintos parámetros decimos que el constructor o método está sobrecargado. La sobrecarga de constructores o métodos permite llevar a cabo una tarea de distintas maneras (por ejemplo crear un objeto Persona con un nombre ya establecido o crearlo sin nombre establecido).

Sobreescritura: Decimos que un método está sobreescrito cuando está presente, exactamente con la misma signatura, en una subclase y en una superclase.
« Última modificación: 28 de Septiembre 2013, 18:22 por nosferacento »

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
operadores lógicos de comparación en Java
« Respuesta #177 en: 28 de Septiembre 2013, 18:23 »
PREGUNTA: Dada la expresión:   op1 | op2 podemos afirmar que:

a) op2 se evaluará siempre
b) op2 no se evaluará nunca
c) op2 se evaluará a veces
d) El operador no es válido en java




RESPUESTA: la opción correcta es la a). Con este operador se obtiene true si op1 o op2 son verdaderos, y siempre evalúa op1 y op2. ¿Si el resultado va a ser igual que op1 || op2 qué efecto práctico puede tener este operador? A veces no habrá "efecto práctico". Pero en otras ocasiones op2 podría ser el nombre de una función que devuelve un valor booleano. En este caso, al ejecutarse op2 podría haber algún tipo de efecto como cambio de valor de alguna variable, un mensaje en pantalla o cualquier otro derivado de la ejecución de esa función.

Nota: si la expresión fuera op1 || op2 entonces op2 se evaluará en algunos casos, pero no en todos. Con este operador se obtiene true si op1 o op2 son verdaderos; si op1 es verdadero no se evalúa op2 y se devuelve verdadero. Si op1 es falso se evalúa op2 y se devuelve el valor de verdad de op2. Esta forma de operación se denomina evaluación en cortocircuito o evaluación perezosa.

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
conversión de tipos con herencia en java
« Respuesta #178 en: 17 de Enero 2014, 10:04 »
PREGUNTA:  ¿Qué ocurrirá al compilar y ejecutar el siguiente código?

class Padre {}
class ClaseHija extends Padre {}
class ClaseHija2 extends Padre {}
public class Test{
public static void main(String argv[]) {
Padre b=new Padre ();
ClaseHija s=(ClaseHija) b;
System.out.print("Ejecutando Aplicación");
}
}


a. Compilará y se ejecutará sin problemas
b. Error de Compilación
c. Excepción en tiempo de ejecución
d. Excepción en tiempo de ejecución y luego mostrará el mensaje "Ejecutando Aplicación"


RESPUESTA: la opción correcta es la c)

Estas preguntas no son fáciles de responder (lo serían si tuviéramos un ordenador delante). Tratamos de analizar lo que hará el código.

Se declara una clase Padre, vacía. Se declara dos clases que herendan de Padre, ClaseHija y ClaseHija2. Estas clases se declaran sin modificador de acceso: esto es legal (se aplica un tratamiento por defecto previsto por Java). A continuación se declara la clase pública Test que contiene el método main.

Nos puede llamar la atención public static void main(String argv[]) ya que no se suele usar argv sino args, pero esto es igualmente legal, es el nombre de un parámetro para el método. Se declara un objeto de la clase Padre al que se denomina b. Se crea un objeto de la clase hija que es el objeto de la clase Padre convertido en hija (casting de padre a hija). ç

Aquí nos tenemos que plantear: ¿es legal convertir un objeto de un nivel jerárquico superior a un objeto de nivel jerárquico inferior? La respuesta es que esto sólo es posible si el objeto de nivel superior contiene un objeto del tipo del nivel inferior. Es decir, en este caso si el objeto b contuviera un objeto del tipo ClaseHija. Si no lo contiene, como es este caso, salta un error del tipo java.lang.ClassCastException en tiempo de ejecución. java.lang.ClassCastException: Padre cannot be cast to ClaseHija

En resumen, si hiciéramos ClaseHija s= b; obtendríamos un error en tiempo de compilación

Si hacemos ClaseHija s=(ClaseHija) b; la compilación es correcta pero salta un error ClassCastException en tiempo de ejecución.

Si hiciéramos Padre b=new ClaseHija (); el programa se ejecutaría sin error, ya que la clase padre contiene un objeto de la clase hija (legal, en eso consiste el polimorfismo).

Pregunta nada sencilla de responder en un examen   :(

Gallaecio

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Muchas gracias por este tema, ¡me será de mucha ayuda para repasar!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".