Ejemplos de Preguntas - Up
Ejemplos de Preguntas - Up
Preguntas
Muestra de Preguntas de Selección Múltiple
acerca del tema trabajado con sus
correspondientes respuestas y
explicaciones.
Ejemplos de Preguntas ii
Ejemplos de Preguntas ii
Reinaldo José Carrillo Roldán
Jaime Leandro Martínez Sánchez
Certificación de Nivel Técnico, 4 Semestre
Tutora Ingrid Rocío Baquero Villamil
Lunes 7 de Diciembre de 2015.
Ejemplos de Preguntas
Muestra de Preguntas de Selección Múltiple acerca del tema trabajado
con sus correspondientes respuestas y explicaciones.
Introducción
De acuerdo a lo solicitado en el proyecto de Aula, este documento constituye el
documento del literal ‘c’ correspondiente a los ejemplos de preguntas (Mínimo 5),
basadas en la sintáxis del Lenguaje Java que sirvan como herramienta de
preparación para el examen de certificación “Java Estandar Edition” y que en nuestro
caso es la prueba:
Preguntas
Ejemplos de Preguntas 1
Pregunta 1
De acuerdo al siguiente código responda:
a. ClassNotFoundException ex
b. NullPointerException ex
c. IncompatibleClassChangeException ex
d. ClassCastException ex
Respuesta
La respuesta correcta es
a. ClassNotFoundException ex
Explicación
Se genera la excepción cuando la clase no se ha encontrado, recordemos que
el Driver es una clase a la cual se accede por medio de la sentencia que está incluida
dentro del parentesis. Las otras excepciones están referidas a b) cuando se intenta
acceder a una variable o a un método antes de que este sea definido. c) El intento de
cambiar una clase afectada por referencias en otros objetos, en especial cuando
Ejemplos de Preguntas 2
estos aun no han sido recompilados. Y d) cuando se intenta convertir un objeto a otra
clase que no es valida.
Ejemplos de Preguntas 3
Pregunta 2
De acuerdo al siguiente código responda:
a. No hay ningún problema para instanciar objetos de esta clase con este
constructor.
b. Debemos recurrir a un método público que en su interior cree una
instancia de esta clase, llamando al constructor. Este método debe
estar en la misma clase Conexión.
c. Debemos recurrir a un método que en su interior cree una instancia de
esta clase, llamando al constructor sin importar que este contenido en
otra clase
d. Debemos sobrescribir este constructor en las diferentes clases donde
debamos crear una instancia de la misma.
Respuesta
Explicación
Ya que el constructor de la clase es privado, debemos crear un método que
permita instanciar (crear objetos) de esta clase. Este método deberá ser público y
Ejemplos de Preguntas 4
deberá estar contenido en la misma clase donde se formula. Esto para poder aplicar
el Patrón de Diseño Singleton, cuyo método debe además ser Synchronized. En
nuestro caso, el método es estaConectado, que verifica si hay una instancia de la
clase, si ya la hay no hace nada, pero en caso contrario, crea una única instancia de
la clase.
Pregunta 3
De acuerdo al siguiente código responda:
Respuesta
Ejemplos de Preguntas 5
d. Lanza una excepción ArrayIndexOutOfBoundsException que no fue
capturada con un bloque try catch o una clausula Throws
Explicación
En el ciclo ‘for’ encontramos que para i = 0 y mientras i sea menor o igual que
valor debe ejecutar las acciones del ciclo, en el momento que i se iguala con valor,
ya se ha salido del contador de filas asignado a valor, por lo cual lanza la excepción
(adrede obviamos el bloque Try Catch que captura la excepción para poder
ejemplificar mejor esta pieza de código) ArrayIndexOutOfBoundsException. Es por eso
que deben darse dos posibles soluciones. La primera es que i sólo sea menor que
valor ó que sea escrito que i sea menor o igual que valor menos uno (1). Haciendo
esta corrección, este método del btnDefinitiva, suma los valores de la columna 4 de
la tabla (recordemos que los indices de los arreglos inician en 0 y no en 1) y luego
divide este valor por el número de filas que esta tenga.
Ejemplos de Preguntas 6
Pregunta 4
Para la siguiente Interface y de acuerdo al uso de “Generics” responda
Respuesta
Explicación
Como podemos ver, en el método abstracto consultarTodo el valor de retorno
es una “List” de tipo “EntidadLibre” por lo que, tanto la interfaz como la clase que
implemente la interfaz, deberán importar del paquete java.util. la interfaz List, que
nos define el comportamiento de una lista de elementos. “Esta lista normalmente
admite elementos duplicados o iguales y son principalmente accedidos por su
posición o por su secuencia, de acuerdo a las caracteristicas”(Oracle). Ya, el paquete
java.util incluye clases (como LinkedList) que implementan esta interfaz, pero en
Ejemplos de Preguntas 7
este caso hemos dado una Lista Genérica (que en el caso de List es <E>). Será la
unica relación con Genericos, porque el Genérico de este ejemplo <EntidadLibre> es
sólo la definición de tipo para esta interfaz, que está relacionada con cualquier cosa
que queramos trabajar. Ya cada Clase que haga una implementación de esta
interfaz, define el tipo según el nombre de la clase de lo que quiere devolver al hacer
la implementación.
Pregunta 5
En el siguiente código deseamos crear Profesores e ingresarlos a la Base de
Datos,; sin embargo, hace falta una pieza de código que nos permita ejecutar la
@Override
public boolean darDeAlta(DTOProfesor e) {
PreparedStatement ps;
try {
ps = CONEXION.getEnlace().prepareStatement(SQL_CREAR);
ps.setString(1, e.getDocumento());
ps.setString(2, e.getPassword());
ps.setString(3, e.getNombres());
ps.setString(4, e.getApellidos());
ps.setBoolean(5, e.isPrivilegio());
if (ps.executeUpdate() > 0){
return true; }
} catch (SQLException ex) {
Logger.getLogger(EstudianteDAO.class.getName()).log(Level.SEVERE, null,
ex); } finally{
CONEXION.cerrarConexion();
}
return false;
}}
Ejemplos de Preguntas 8
Que pieza de código debemos incluir en el recuadro de tal modo que podamos
completar la operación deseada:
a. Statement ps;
b. ResultSet ps;
c. PreparedStatement ps;
d. PreparedStatement ps = new Statement(DTOProfesor e);
e. Statement ps = new PreparedStatement(DTOProfesor e);
f. PrepredStatement ps = new PreparedStatement(DTOProfesor e);
Respuesta
c. PreparedStatement ps:
Explicación
En este caso debemos crear una variable local (la que de acuerdo al código
debe llamarse ps, aunque no necesariamente tenga que tener este nombre – ese es
el nomre seleccionado para este ejemplo-). esta “Variable Local” debe ser un
Statement, pero como la query no esta incluida a nivel local, sino se ha definido
como una variable de clase (que además tiene los modificadores “Static” y “Final”
por lo que se comporta como una constante) con el String que representa la Query,
entonces creamos un atributo de tipo PreparedStatement, adecuado para trabajar
los Statements que se han definido por fuera del método.
El metodo de PreparedStatement (prepareStatement) recibe como parámetro
un String, que en este caso coincide con la Query ( SQL_CREAR). Por tanto, la variable
PreparedStatement ps, se inicializa con la sentencia
CONEXION.getEnlace().prepareStatement(SQL_CREAR) por lo que no se crean nuevos
objetos. Además, porque la sintaxis dadas a los literales d, e y f son erróneos
(“DTOProfesor e” es el parámetro que recibe el método y no guarda relación con el
Statement pues este se utiliza para ejecutar la query en la base de datos y por tanto
“ps” es un objeto que la ejecuta, por lo que se enlaza y aplica la sentencia
representada en el String predefinido).
Ejemplos de Preguntas 9
Pregunta 6
Observe el siguiente código y luego responda.
package Controlador;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.swing.*;
public class RelojCTL extends JLabel implements Runnable {
private String dia, mes, año, hora, minutos, segundos;
private final Calendar calendario = new GregorianCalendar();
Thread hilo;
public static RelojCTL instancia;
public RelojCTL (int x, int y, int p, int p1) { //Constructor
setBounds(x, y, p, p1);
hilo = new Thread(this);
hilo.start();}
private RelojCTL (){
RelojCTL reloj = new RelojCTL (0, 0, 0, 0);
reloj.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
reloj.setFont(new java.awt.Font("Arial", 1, 32));
JFrame VtnReloj = new JFrame();
VtnReloj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
VtnReloj.setBounds(0, 0, 250, 150);
VtnReloj.getContentPane().add(reloj);
VtnReloj.setVisible(true);
VtnReloj.setTitle("La hora y el día de hoy es:"); }
public void actualizar() {
Date fechaHoraActual = new Date();
calendario.setTime(fechaHoraActual);
hora = String.valueOf(calendario.get(Calendar.HOUR_OF_DAY));
minutos = calendario.get(Calendar.MINUTE) > 9 ? "" +
calendario.get(Calendar.MINUTE) : "0" + calendario.get(Calendar.MINUTE);
segundos = calendario.get(Calendar.SECOND) > 9 ? "" +
calendario.get(Calendar.SECOND) : "0" + calendario.get(Calendar.SECOND);
dia = calendario.get(Calendar.DATE) > 9 ? "" +
calendario.get(Calendar.DATE) : "0" + calendario.get(Calendar.DATE);
mes = calendario.get(Calendar.MONTH) > 9 ? "" +
calendario.get(Calendar.MONTH) : "0" + calendario.get(Calendar.MONTH);
año = calendario.get(Calendar.YEAR) > 9 ? "" +
calendario.get(Calendar.YEAR) : "0" + calendario.get(Calendar.YEAR);}
Ejemplos de Preguntas 10
@Override
public void run() {
Thread ct = Thread.currentThread();
while (ct == hilo) {
try {
actualizar(); int mesE;
mesE = Integer.valueOf(mes) + 1;
setText("<html><center>" + dia + " / " + mesE + " / " + año +
"<br>" + hora + ":" + minutos + ":" + segundos);
Thread.sleep(1000);
} catch (InterruptedException ex) {
JOptionPane.showMessageDialog(null, "Reloj interrumpido");}}}
public synchronized static RelojCTL creaFrame() {
if (instancia == null){
instancia = new RelojCTL();
}
return instancia; }}
Respuesta
Explicación
La interfaz para implementar la clase Thread se denomina Runnable. La Clase
Thread no implementa sino que extiende y como ya hereda de JLabel en Java no
existe la herencia múltiple. Si podemos instanciar objetos de la clase Thread. Ahora,
para implementar la interface Runnable es necesario implementar el método “Run”,
que es a través del cual se ejecuta el hilo. Respecto al patrón de diseño, toda la
implementación se lleva a cabo en la misma clase. El hecho que al final del nombre
c. La interfaz Runnable y el patrón de diseño SINGLETON
Ejemplos de Preguntas 11
de la clase use la sigla CTL es un distractor para pensar que utiliza el patrón Modelo-
Vita-Controlador y que esta clase corresponde al controlador, pero la funcionalidad
no se ha separado. No tiene acceso a datos, por lo que no es DAO, no sirve de
modelo para crear otro relojes con variaciones por lo que no es el patrón de diseño
Factory Pattern. Sin embargo, observamos que su constructor es privado, que un
método público instancia la clase a través de un atributo de instancia, que utiliza el
modificador Synchronized: caracteristicas que se corresponden con el patrón de
diseño “Singleton”.
Ejemplos de Preguntas 12
Bibliografía
DEITEL, P.J. & DEITEL H.M.(2008) Como Programar en Java. Traducido por Alfonso
Vidal Romero. (7ª edición). Editorial Pearson Educación. México.
GIBERT, M. (2007) Bases de Datos: Desarrollo de aplicaciones en conexión con bases de
datos PHP y Java. (2ª edición) Universidad Abierta de Cataluña. UOC. Disponible
en http://ocw.uoc.edu/computer-science-technology-and-multimedia/bases-de-
datos/Course_listing.
JOYANES, L. (2002) Fundamentos de Programación: Algoritmos, estructuras de datos y
Objetos. (4ª edición) McGraw – Hill. España.
JOYANES, L. & ZAHONERO, I. (2008) Estructuras de datos con Java. McGraw – Hill.
España
KENDALL, S. (2009) Object Oriented Programming using Java. Ventus Publishing. Free
eBook. Disponible en https://sunsreynat.files.wordpress.com/2014/06/object-
oriented-programming-using-java.pdf.
PEARSON. Test área and Testing Centers PearsonVue. Disponible en:
http://home.pearsonvue.com/test-taker.aspx . Recuperado en 6 de noviembre de
2015.
SILBERSCHATZ, A., KORTH, H. F. & SUDARSHAN S. (2002). Database system
concepts (4th ed.). McGraw – Hill.
Como recurso de consulta, fue utilizado el sitio web oficial de Oracle (documentación,
API, Oracle University) para los diferentes contenidos de este ejercicio.
Ejemplos de Preguntas 13