Examen 1 Programación B - DAM
|
|
Título del Test:
![]() Examen 1 Programación B - DAM Descripción: Test 1 de 4 para el módulo Programación B basado en el temario de Ilerna |



| Comentarios |
|---|
NO HAY REGISTROS |
|
Si tienes un objeto llamado 'usuario1' con un método 'login()', ¿cómo invocarías ese método?. usuario1->login();. usuario1:login();. usuario1.login();. login.usuario1();. ¿Qué diferencia existe entre el proceso de 'declaración' y el de 'instanciación' de un objeto?. La declaración crea el objeto real en memoria; la instanciación solo le da un nombre. La declaración usa 'new' y la instanciación usa el nombre de la clase. Son procesos idénticos que Java realiza siempre en el mismo paso. La declaración crea una variable de referencia; la instanciación crea el objeto real en memoria. ¿Qué característica de la POO permite centrarse en qué hace una entidad sin preocuparse por los detalles internos de su implementación?. Instanciación. Abstracción. Herencia. Iteración. ¿Cuál es la función principal de un constructor en una clase Java?. Borrar el objeto de la memoria cuando ya no se usa. Inicializar los atributos del objeto en el momento de su creación. Permitir que la clase herede de otra clase superior. Definir únicamente la lógica de impresión por consola. Analiza el impacto de la modularización en el trabajo en equipo según el texto. ¿Cuál es su principal ventaja?. Obliga a que un solo programador supervise todas las líneas de código. Reduce la cantidad de clases necesarias para que el programa funcione. Permite que todos los programadores modifiquen el mismo método al mismo tiempo. Permite que diferentes programadores trabajen en distintas clases de forma independiente. Tienes la clase 'Coche' con un atributo público 'velocidad'. Si quieres incrementar la velocidad de 'miCoche' en 10, ¿qué instrucción es correcta?. new Coche(velocidad + 10);. velocidad.miCoche(10);. miCoche.velocidad = miCoche.velocidad + 10;. Coche.velocidad += 10;. Comparando 'Atributos' y 'Métodos', ¿cuál es la diferencia fundamental en su propósito dentro de una clase?. Los atributos se definen con 'new' y los métodos con 'class'. No hay diferencia, ambos se usan para almacenar información del objeto. Los atributos son acciones y los métodos son las variables globales. Los atributos representan el estado (datos) y los métodos representan el comportamiento (acciones). Si ejecutas el código 'Persona p1 = new Persona("Ana"); Persona p2 = p1;', ¿qué sucede técnicamente?. Ambas variables p1 y p2 apuntan al mismo objeto en memoria. Se crean dos objetos idénticos pero independientes en memoria. Java borra el objeto 'p1' y crea uno nuevo llamado 'p2'. El código da error porque no se puede igualar una persona a otra. Si declaras 'Libro miLibro;' pero no utilizas la palabra 'new', ¿qué puedes hacer con 'miLibro'?. No puedes acceder a sus atributos o métodos porque el objeto no ha sido instanciado. Puedes usar sus métodos pero no sus atributos. Solo puedes usarlo si la clase es de tipo 'String'. Puedes usarlo normalmente ya que la declaración reserva la memoria. ¿Qué símbolo se utiliza en Java para acceder a los miembros (atributos o métodos) de un objeto?. El doble dos puntos (::). El punto (.). La flecha (->). El signo de dólar ($). ¿Cuál es la convención de escritura recomendada para nombrar clases en Java?. SCREAMING_SNAKE_CASE. lowerCamelCase. UpperCamelCase. snake_case. ¿Qué palabra clave se utiliza en Java para crear una instancia de una clase y reservar espacio en memoria?. class. public. new. instance. Dada la clase 'Libro', ¿cuál es la sintaxis correcta para declarar e instanciar un objeto en una sola línea?. Libro miLibro = new Libro();. new Libro miLibro();. miLibro Libro = new();. Libro = new Libro();. Si se crean dos objetos de la misma clase, ¿qué sucede con sus atributos?. Cada objeto mantiene sus propios valores de forma independiente. Solo el primer objeto creado puede tener valores reales. Al modificar uno, el otro se actualiza automáticamente. Ambos comparten los mismos valores de forma obligatoria. ¿Qué define el "estado" de un objeto en un momento determinado?. La visibilidad de su constructor. La cantidad de métodos que tiene definidos. El nombre de la clase a la que pertenece. Los valores actuales de sus atributos. ¿Cuál de las siguientes declaraciones de constructor para la clase 'Producto' es sintácticamente correcta en Java?. static Producto() { }. constructor Producto() { }. public Producto(String nombre) { this.nombre = nombre; }. public void Producto() { }. ¿Cómo se denomina a los datos o características que se definen dentro de una clase?. Constructores. Métodos. Atributos. Instancias. En el contexto de la Programación Orientada a Objetos, ¿cuál es la relación correcta entre una clase y un objeto?. El objeto define los métodos y la clase almacena los datos reales. No existe diferencia; ambos términos son sinónimos en Java. La clase es una instancia específica de un objeto. La clase es el plano arquitectónico y el objeto es la casa construida. ¿Por qué se dice que la POO facilita el mantenimiento del software?. Porque permite que los cambios en una parte del sistema tengan un impacto controlado. Porque permite que los programas se ejecuten sin usar memoria RAM. Porque elimina la necesidad de escribir métodos. Porque obliga a que todo el código esté en un solo archivo. Para una clase 'CuentaBancaria' cuyo constructor requiere un saldo inicial (double), ¿cuál es la instanciación válida?. CuentaBancaria cuenta = new CuentaBancaria(500.0);. cuenta = new CuentaBancaria;. double cuenta = new CuentaBancaria(500.0);. CuentaBancaria cuenta = new 500.0;. ¿Qué sucede con la modularidad del código cuando aplicamos correctamente la encapsulación?. Empeora, porque el código se vuelve más difícil de leer. Se reduce la cantidad de métodos necesarios en el sistema. Mejora, ya que los cambios internos no afectan al resto del programa. No produce ningún efecto sobre la modularidad. ¿Cuál es la diferencia fundamental entre el uso de 'private' y 'protected' en la estructura de una clase?. No hay diferencia real, ambos funcionan igual en Java. Private es para métodos y protected es solo para atributos. Private limita el acceso solo a la clase actual, mientras que protected permite el acceso a herederos y paquetes. Protected es más restrictivo que private en todos los casos. Si un desarrollador decide cambiar la implementación interna de un método setEdad(int e) para que ahora guarde la edad en meses en lugar de años, pero mantiene el nombre del método y el parámetro igual, ¿qué ocurre con el código que usaba esa clase?. El código externo fallará al compilar inmediatamente. Es imposible realizar cambios internos sin cambiar la firma del método. El código externo sigue funcionando (compila), pero el comportamiento lógico ha cambiado. Java actualizará automáticamente el código externo para adaptarse. ¿Cuál es la relación principal entre los atributos y los métodos en una clase?. Los atributos son acciones y los métodos son características. No existe relación directa entre ambos elementos. Los atributos definen el estado y los métodos definen el comportamiento. Los métodos almacenan datos y los atributos los procesan. Si una clase A necesita acceder a un miembro de la clase B situada en un paquete diferente, ¿qué modificador debe tener dicho miembro?. protected. default. private. public. Al analizar la clase Persona, si el método cumplirAños() no existiera, ¿cómo afectaría esto a la integridad del objeto?. La clase Persona no podría compilarse en Java. No afectaría en nada, el objeto seguiría funcionando igual. El objeto dejaría de existir al no tener comportamientos. Obligaría a modificar la edad externamente, arriesgando la consistencia de los datos. ¿Por qué se considera una mala práctica dejar los atributos como 'public'?. Porque impide que otros objetos lean los datos de la clase. Porque Java no permite compilar clases con atributos públicos. Porque permite modificaciones directas sin ningún control ni validación. Porque el programa consume más memoria de forma innecesaria. Tienes una clase CuentaBancaria con un atributo private double saldo. ¿Cómo permitirías que otras clases consulten el saldo sin poder modificarlo directamente?. Creando únicamente un método getter público para el saldo. Cambiando el modificador de saldo a public. Haciendo que el atributo sea protected. Creando un método setter público sin validación. Si queremos evitar que el atributo edad de una Persona sea un número negativo, ¿dónde deberíamos implementar esta lógica?. Directamente en la declaración del atributo int edad;. Dentro del método setter de la edad. No es posible validar datos en una clase. En el método mostrarInformacion(). Al intentar ejecutar persona1.nombre = "Ana"; desde otra clase, recibes un error de compilación indicando que 'nombre tiene acceso privado'. ¿Qué acción resuelve esto manteniendo las buenas prácticas?. Usar un método público setNombre("Ana");. Mover la otra clase al mismo archivo que Persona. Eliminar el atributo nombre de la clase. Cambiar el atributo a public inmediatamente. Se desea que las subclases de Persona puedan acceder a un atributo id, pero que clases externas no puedan. ¿Qué modificador se debe usar?. private. public. protected. static. ¿Qué término se utiliza en programación orientada a objetos para referirse a las variables que definen el estado de una clase?. Instancias. Atributos. Métodos. Modificadores. ¿Qué operador se utiliza en Java para acceder a los atributos o invocar los métodos de un objeto?. El operador de suma (+). El operador de flecha (->). El operador de dos puntos (::). El operador de punto (.). ¿Cuál sería la firma correcta de un método para modificar el nombre de una persona recibiendo un texto por parámetro?. public String getNombre(). public int setNombre(String n). private void setNombre(). public void setNombre(String nuevoNombre). Dada una instancia p1 de la clase Persona, ¿cuál es la forma correcta de llamar al método cumplirAños()?. Persona.cumplirAños(p1);. p1->cumplirAños();. call cumplirAños() on p1;. p1.cumplirAños();. ¿Cuál es la función principal de un método 'setter'?. Imprimir el valor de un atributo en la consola. Crear una nueva instancia de la clase Persona. Eliminar un objeto de la memoria del sistema. Modificar el valor de un atributo privado de forma controlada. En Java, ¿qué palabra clave se utiliza para que un atributo solo sea accesible desde dentro de la misma clase?. public. protected. void. private. ¿Cuál es la convención de nombre estándar para un método que recupera el valor de un atributo llamado 'edad'?. showEdad(). getEdad(). returnEdad(). setEdad(). Si el método mostrarInformacion() imprime el nombre y la edad, y luego llamas a cumplirAños(), ¿qué verás si vuelves a llamar a mostrarInformacion()?. El nombre vacío y la edad en cero. Los datos originales sin cambios. Un error de ejecución porque el estado cambió. El mismo nombre pero la edad incrementada en 1. ¿Qué analogía se utiliza habitualmente para explicar el concepto de encapsulación?. Un iceberg, donde solo una parte es visible. Un libro abierto sin portada. Un motor de coche totalmente expuesto. Una red de pesca transparente. Un programador olvida incluir una condición de salida en un método recursivo. ¿Cuál será el resultado inmediato al ejecutarlo?. El Garbage Collector eliminará la función automáticamente. El programa se ejecutará infinitamente sin consumir memoria extra. Los objetos en la Heap se sobrescribirán con los datos de la Stack. El programa lanzará un StackOverflowError tras agotar la memoria de la pila. Al analizar la instrucción 'int x = 5;', ¿cómo se diferencia su gestión de memoria respecto a 'Persona p = new Persona();'?. La variable 'x' genera un stack frame propio, mientras que 'p' no lo hace. El valor '5' se guarda directamente en la Stack, mientras que el objeto Persona se guarda en la Heap. El valor '5' requiere que el Garbage Collector lo elimine, el objeto Persona no. Ambos se guardan íntegramente en la Stack por ser variables locales. En una función recursiva para calcular el factorial, ¿cuándo comienzan a liberarse los marcos de la Stack?. Cuando se alcanza la condición base y las llamadas empiezan a retornar valores. Nunca se liberan hasta que termina el hilo principal del programa. Inmediatamente después de la primera llamada recursiva. Cuando el Garbage Collector detecta que la Stack está al 50% de capacidad. Si declaramos una clase 'Coche' y escribimos el método 'public void Coche()', ¿qué identificará el compilador de Java?. Un método convencional, no un constructor, debido a la presencia de 'void'. Un constructor válido que no devuelve nada. Un error de sintaxis que impide la compilación de la clase. Un constructor predeterminado que inicializa los atributos en nulo. ¿Qué contiene un 'stack frame' durante la ejecución de una función recursiva?. Variables locales, parámetros de entrada y la dirección de retorno. Copia de los atributos de todos los objetos de la clase. El historial completo de todas las funciones llamadas anteriormente. Únicamente la condición base de la recursividad. ¿Por qué las soluciones iterativas suelen considerarse más eficientes en términos de memoria que las recursivas en Java?. Porque el Garbage Collector no puede actuar sobre funciones recursivas. Porque las iterativas usan una cantidad constante de Stack, mientras que las recursivas crean múltiples marcos de pila. Porque las soluciones iterativas no utilizan la memoria Heap. Porque las variables locales de un bucle se almacenan en la Heap, que es más grande. ¿Por qué se dice que la estructura de la memoria Stack sigue un orden LIFO?. Porque permite que los objetos más antiguos en la Heap se eliminen primero. Porque permite acceder aleatoriamente a cualquier dirección de memoria. Porque el último marco de método en entrar es el primero en ser retirado al finalizar su ejecución. Porque las variables locales se mantienen durante toda la vida del programa. ¿Qué diferencia fundamental existe entre la Stack y la Heap en cuanto al tipo de datos que almacenan?. No hay diferencia, ambas áreas comparten los mismos tipos de datos dinámicos. La Stack es para variables globales y la Heap para variables locales. La Stack almacena referencias y variables locales, mientras la Heap almacena los datos de los objetos. La Stack almacena los datos de los objetos y la Heap las variables de tipo primitivo. ¿Cuál es el propósito principal de un constructor en la Programación Orientada a Objetos?. Reservar espacio en la Stack para las variables locales. Garantizar que un objeto se encuentre en un estado válido e inicializado. Permitir que el Garbage Collector identifique el objeto. Ejecutar lógica compleja de negocio antes que otros métodos. ¿En qué área de la memoria de Java se almacenan los objetos instanciados mediante la palabra clave 'new'?. Stack Frame. Heap. Stack. LIFO Cache. ¿Qué sucede con un objeto en la Heap si todas las referencias en la Stack que apuntaban a él desaparecen?. Se mueve automáticamente a la Stack para ahorrar espacio. El compilador genera un error de referencia nula inmediatamente. Es marcado por el Garbage Collector para su eliminación definitiva. Permanece en la Heap hasta que se cierre el programa por completo. En el contexto de un constructor, ¿cuál es la función de la palabra clave 'this'?. Crear una nueva referencia en la Heap para el mismo objeto. Diferenciar los atributos de la instancia de los parámetros recibidos con el mismo nombre. Indicar que el método devuelve un valor de tipo objeto. Llamar al Garbage Collector manualmente. ¿Qué error lanza Java cuando la Stack se llena por completo debido a una recursividad excesiva?. RecursiveLimitException. StackOverflowError. NullPointerException. OutOfMemoryError. Al ejecutar 'Persona p = new Persona();', ¿qué elemento se almacena específicamente en la Stack?. El objeto 'Persona' con todos sus atributos. La variable 'p' que contiene la dirección de memoria del objeto. Los valores por defecto de los atributos del objeto. El código del constructor de la clase Persona. ¿Cuáles son las dos reglas sintácticas estrictas para declarar un constructor en Java?. Nombre idéntico a la clase y ausencia de tipo de retorno. Nombre en minúsculas y uso de la palabra clave void. Nombre de la clase y devolución de un objeto de tipo Object. Uso del modificador static y nombre diferente a la clase. ¿Qué ocurre en la Stack si un método A llama a un método B, y B llama a C?. Los métodos se guardan en la Heap y solo sus resultados van a la Stack. Se apilan tres marcos distintos (A, luego B, luego C) siguiendo el orden de llamada. Se crea un único marco grande que engloba a los tres métodos. Se borra el marco de A cuando se llama a B para ahorrar memoria. Si tenemos el código 'Persona p1 = new Persona(); Persona p2 = p1;', ¿qué está ocurriendo en la memoria?. Se ha movido el objeto de la Heap a la Stack para mayor rapidez. La Stack contiene dos referencias que apuntan a dos direcciones distintas. Se han creado dos objetos idénticos pero independientes en la Heap. Existen dos referencias en la Stack que apuntan al mismo objeto en la Heap. Dentro de un constructor, si recibimos 'int edad' y queremos asignarlo al atributo 'edad' de la clase, ¿cuál es la sintaxis correcta?. edad = this.edad;. Persona.edad = edad;. this.edad = edad;. new edad = edad;. ¿Qué mecanismo de Java se encarga de liberar el espacio en la Heap ocupado por objetos que ya no son referenciados?. LIFO Manager. Stack Frame Handler. Memory Allocator. Garbage Collector. Compare el impacto de un objeto grande frente a una recursión profunda. ¿Qué afirmación es correcta respecto a las áreas de memoria?. Ambos afectan exclusivamente a la Heap. Un objeto grande reside en la Stack si se crea dentro de un método recursivo. La recursión profunda llena la Heap con referencias innecesarias. Un objeto grande afecta principalmente la Heap, mientras que la recursión profunda agota la Stack. |




