Preguntas SCJP 2

1. Dada la clase:

public class Encapsulation {
    public int edad;
    public String nombre;
 
    public int getEdad(){
        return edad;
    }
 
    public String getNombre(){
        return nombre;
    }
}

¿Qué modificaciones se deben hacer para que quede correctamente encapsulada? (seleccione todas las que apliquen).

a. Agregar los métodos setEdad() y setNombre()

b. Cambiar el modificador public de los métodos getEdad() y getNombre() por private.

c. Cambiar el modificador public de los atributos edad y nombre por private.

d. La clase está encapsulada correctamente.


2. Dadas las siguientes declaraciones:

class A {}
class B {}
class C extends B {}
class D extends A {}
class E extends C {}

¿Cuáles afirmaciones son ciertas?

a. B IS-A A

b. A HAS-A B

c. C IS-A B

d. D IS-A B

e. E IS-A B

f. E IS-A A

g. E IS-A C

h. D IS-A A


3. Dadas las siguientes declaraciones:

class A {}
 
class B {
    private A attribute1;
}
 
class C extends B {}

¿Cuáles afirmaciones son ciertas?

a. A HAS-A B

b. B HAS-A A

c. A HAS-A C

d. C HAS-A A

e. C IS-A B

f. B IS-A C

g. A IS-A C


4. Si la siguiente expresión es cierta: "A IS-A B" y "B IS-A C".
¿Cuál afirmación es cierta?

a. A IS-A C

b. C IS-A A


5. Dado el siguiente programa:

public class Pelota {
 
    private String radio = "SOY UNA PELOTA DE 20CM DE RADIO";
 
    public void rebotar(){
        System.out.println("REBOTANDO COMO PELOTA...");
    }
 
    public static void main(String[] args) {
        Pelota pel = new PelotaBeisbol();
        System.out.println(pel.radio);
        pel.rebotar();
    }
}
 
class PelotaBeisbol extends Pelota{
    private String radio = "SOY UNA PELOTA DE BEISBOL DE 5 CM DE RADIO";
 
    public void rebotar(){
        System.out.println("REBOTANDO COMO PELOTA DE BEISBOL...");
    }
}

¿Cuál será la salida al ejecutarlo? (Sin comillas)

a. "SOY UNA PELOTA DE 20CM DE RADIO"
"REBOTANDO COMO PELOTA…"

b. "SOY UNA PELOTA DE BEISBOL DE 5 CM DE RADIO"
"REBOTANDO COMO PELOTA DE BEISBOL…"

c. "SOY UNA PELOTA DE 20CM DE RADIO"
"REBOTANDO COMO PELOTA DE BEISBOL…"

d. "SOY UNA PELOTA DE BEISBOL DE 5 CM DE RADIO"
"REBOTANDO COMO PELOTA…"

e. El programa no compila.


6. Dado el siguiente programa:

class TheOne{
    public String value = "HELLO, I'M PEPE";
}
 
class TheTwo extends TheOne{
    private String value = "HELLO, I'M MR. ROBOTO";
 
    public static void main(String[] args) {
        TheOne one = new TheOne();
        TheOne two = new TheTwo();
 
        System.out.println(one.value);
        System.out.println(two.value);
    }
}

¿Cuál será la salida al compilar y ejecutar la clase TheTwo?

a. HELLO, I'M PEPE
HELLO, I'M PEPE

b. HELLO, I'M MR. ROBOTO
HELLO, I'M MR. ROBOTO

c. HELLO, I'M PEPE
HELLO, I'M MR. ROBOTO

d. HELLO, I'M MR. ROBOTO
HELLO, I'M PEPE

e. Error de compilación.


7. Dado el siguiente programa:

class TheOne{
    private String value = "HELLO, I'M PEPE";
}
 
class TheTwo extends TheOne{
    public String value = "HELLO, I'M MR. ROBOTO";
 
    public static void main(String[] args) {
        TheOne one = new TheOne();
        TheOne two = new TheTwo();
 
        System.out.println(one.value);
        System.out.println(two.value);
    }
}

¿Cuál será la salida al compilar y ejecutar la clase TheTwo?

a. HELLO, I'M PEPE
HELLO, I'M PEPE

b. HELLO, I'M MR. ROBOTO
HELLO, I'M MR. ROBOTO

c. HELLO, I'M PEPE
HELLO, I'M MR. ROBOTO

d. HELLO, I'M MR. ROBOTO
HELLO, I'M PEPE

e. Error de compilación.


8. Dado el siguiente programa:

class TheOne{
    public String value = "HELLO, I'M PEPE";
}
 
class TheTwo extends TheOne{
    public String value = "HELLO, I'M MR. ROBOTO";
 
    public static void main(String[] args) {
        TheOne one = new TheOne();
        TheTwo two = new TheTwo();
 
        System.out.println(one.value);
        System.out.println(two.value);
    }
}

¿Cuál será la salida al compilar y ejecutar la clase TheTwo?

a. HELLO, I'M PEPE
HELLO, I'M PEPE

b. HELLO, I'M MR. ROBOTO
HELLO, I'M MR. ROBOTO

c. HELLO, I'M PEPE
HELLO, I'M MR. ROBOTO

d. HELLO, I'M MR. ROBOTO
HELLO, I'M PEPE

e. Error de compilación.


9. Dada la clase

class TheOne{
    public void doThingsLikeTheOne(){ }
}
class TheTwo extends TheOne{
    public void doThingsLikeTheOne(){ }
}

¿Está bien sobreescrito el método 'doThingsLikeTheOne()' en la clase TheTwo?

a. Sí.

b. No.


10. Dada la clase:

class TheOne{
    protected void doThingsLikeTheOne(String param1, int param2){ }
}
class TheTwo extends TheOne{
    public void doThingsLikeTheOne(int param2, String param1){ }
}

¿Está bien sobreescrito el método 'doThingsLikeTheOne()' en la clase TheTwo?

a. Sí.

b. No.


11. Dada la clase:

class TheOne{
    public Object doThingsLikeTheOne(int age){ return null; }
}
class TheTwo extends TheOne{
    public String doThingsLikeTheOne(int weight){ return null; }
}

¿Está bien sobreescrito el método 'doThingsLikeTheOne()' en la clase TheTwo?

a. Sí.

b. No.


12. Dada la clase:

class TheOne{
    public Integer doThingsLikeTheOne(int age){ return null; }
}
class TheTwo extends TheOne{
    protected Integer doThingsLikeTheOne(int weight){ return null; }
}

¿Está bien sobreescrito el método 'doThingsLikeTheOne()' en la clase TheTwo?

a. Sí.

b. No.


13. Dada la clase:

class TheOne{
    private Integer doThingsLikeTheOne(int age){ return null; }
}
class TheTwo extends TheOne{
    public Integer doThingsLikeTheOne(int weight){ return null; }
}

¿Es el método 'doThingsLikeTheOne()' un ejemplo de sobreescritura?

a. Sí.

b. No.


14. ¿Compilará el siguiente archivo?:

import java.io.FileNotFoundException;
import java.io.IOException;
 
class TheOne{
    public Integer doThingsLikeTheOne(int age) throws FileNotFoundException{
        return null;
    }
}
class TheTwo extends TheOne{
    public Integer doThingsLikeTheOne(int weight) throws IOException{
        return null;
    }
}

a. Sí.

b. No.


15. ¿Compilará el siguiente archivo?

class TheOne{
    Integer doThingsLikeTheOne(int age) throws RuntimeException{
        return null;
    }
}
class TheTwo extends TheOne{
    public Integer doThingsLikeTheOne(int weight) throws NullPointerException{
        return null;
    }
}

a. Sí.

b. No.


16. ¿Compilará el siguiente archivo?

class TheOne{
    public static Integer doThingsLikeTheOne(int age){
        return null;
    }
}
class TheTwo extends TheOne{
    public Integer doThingsLikeTheOne(int weight){
        return null;
    }
}

a. Sí.

b. No.


17. ¿Cuál es la salida del siguiente programa?

class TheOne{
    public int doThingsLikeTheOne(){
        return 5;
    }
}
class TheTwo extends TheOne{
    public int doThingsLikeTheOne(){
        return 5 + super.doThingsLikeTheOne();
    }
 
    public static void main(String[] args) {
        TheTwo two = new TheTwo();
        System.out.println(two.doThingsLikeTheOne());
    }
}

a. 5.

b. 10.

c. 55.

d. 0.

e. Error de compilación


18. ¿Cuál será la salida después de compilar y ejecutar la clase TheTwo?

class TheOne{
    public int doThingsLikeTheOne(){
        return 5;
    }
}
 
class TheTwo extends TheOne{
    public int doThingsLikeTheOne(){
        return 5 + super.doThingsLikeTheOne();
    }
 
    public static void main(String[] args) {
        TheOne two = new TheTwo();
        System.out.println(two.doThingsLikeTheOne());
    }
}

a. 5.

b. 10.

c. 55.

d. 0.

e. Error de compilación


19. ¿Cuál será la salida después de compilar y ejecutar la clase TheTwo?

class TheOne{
    public int doThingsLikeTheOne() throws Exception{
        return 1;
    }
}
 
class TheTwo extends TheOne{
    public int doThingsLikeTheOne(){
        return 2;
    }
 
    public static void main(String[] args){
        TheOne two = new TheTwo();
        System.out.println(two.doThingsLikeTheOne());
    }
}

a. 1.

b. 2.

c. Error de compilación.


20. ¿Cuál será la salida del siguiente programa?

class Humano{}
class Pepe extends Humano{}
class EjemploSobrecarga{
    void doitYourself(Humano hum){
        System.out.println("1. Procesando un Humano...");
    }
 
    void doitYourself(Pepe pe){
        System.out.println("2. Procesando Pepe...");
    }
 
    public static void main(String[] args) {
        new EjemploSobrecarga().doitYourself(null);
    }
}

a. "1. Procesando un Humano…"

b. "2. Procesando Pepe…"

c. Error de compilación


21. Dado el siguiente programa:

class Humano{
    String adicion = "LECHUGA";
    public void comer(String comida){
        System.out.println("Humano comiendo: " + comida + " + " + adicion);
    }
}
 
class Pepe extends Humano{
    String adicion = "TOCINETA";
    public void comer(String comidaParaPepe){
        System.out.println("Pepe comiendo: " + comidaParaPepe + " + " + adicion);
    }
}
 
class EjemploSobrecarga{
    public static void main(String[] args) {
        Humano hum = new Pepe();
        hum.comer("ARROZ");
    }
}

¿Cuál será la salida al compilar y ejecutar EjemploSobrecarga?

a. Humano comiendo: ARROZ + LECHUGA

b. Pepe comiendo: ARROZ + TOCINETA

c. Humano comiendo: ARROZ + TOCINETA

d. Pepe comiendo: ARROZ + LECHUGA

e. Error de compilación


22. Dado el siguiente programa:

class Humano{
    String adicion = "LECHUGA";
    public void comer(String comida){
        System.out.println("Humano comiendo: " + comida + " + " + adicion);
    }
}
 
class Pepe extends Humano{
    public void comer(String comidaParaPepe){
        System.out.println("Pepe comiendo: " + comidaParaPepe + " + " + adicion);
    }
}
 
class EjemploSobrecarga{
    public static void main(String[] args) {
        Humano hum = new Pepe();
        hum.comer("ARROZ");
    }
}

¿Cuál será la salida al compilar y ejecutar EjemploSobrecarga?

a. Humano comiendo: ARROZ + LECHUGA

b. Pepe comiendo: ARROZ + TOCINETA

c. Humano comiendo: ARROZ + TOCINETA

d. Pepe comiendo: ARROZ + LECHUGA

e. Error de compilación


23. Dado el programa:

class Humano{
    public void comer(String comida){
        System.out.println("Humano comiendo: " + comida + " + " + adicion);
    }
}
 
class Pepe extends Humano{
    String adicion = "TOCINETA";
    public void comer(String comidaParaPepe){
        System.out.println("Pepe comiendo: " + comidaParaPepe + " + " + adicion);
    }
}
 
class EjemploSobrecarga{
    public static void main(String[] args) {
        Humano hum = new Pepe();
        hum.comer("ARROZ");
    }
}

¿Cuál será la salida al compilar y ejecutar EjemploSobrecarga?

a. Humano comiendo: ARROZ + LECHUGA

b. Pepe comiendo: ARROZ + TOCINETA

c. Humano comiendo: ARROZ + TOCINETA

d. Pepe comiendo: ARROZ + LECHUGA

e. Error de compilación


24. Dadas las clases:

class Persona{}
class Juan extends Persona{}

¿Cuáles de las siguientes instrucciones compilarán?
a. Persona p = new Persona();
Persona p2 = (Persona) p;

b. Persona p = new Persona();
Persona p2 = (Juan) p;

c. Juan j = new Persona();

d. Persona p = new Juan();

e. Juan j = new Juan();
Persona p = j;

f. Persona p = new Persona();
String s = (String) p;


25. Dadas las clases:

interface Redondo{}
class Pelota implements Redondo{}
class PelotaDeFutbol extends Pelota{}

¿Cuáles de las siguientes líneas compilarán?

a. Redondo d = (Pelota) new PelotaDeFutbol();

b. PelotaDeFutbol pel = (Redondo) new Pelota();

c. Pelota pel = new Pelota();
Redondo red = pel;

d. PelotaDeFutbol pel = new PelotaDeFutbol();
Redondo red = pel;

e. PelotaDeFutbol pelFu = new PelotaDeFutbol();
Redondo red = pelFu;

f. PelotaDeFutbol pelFu = new PelotaDeFutbol();
Redondo red = (Pelota)pelFu;


26. Dadas las clases:

interface Redondo{}
class Pelota implements Redondo{}
class PelotaDeFutbol extends Pelota{}

¿Cuáles de las siguientes intrucciones fallarán SOLO en tiempo de ejecución?

a. Redondo red = (PelotaDeFutbol)new Pelota();

b. Redondo red = (Redondo)new Pelota();

c. Redondo red = (Pelota)((Object)new String());

d. Pelota pel = (PelotaDeFutbol)new Pelota();

e. Redondo red = (PelotaDeFutbol)new Pelota();

f. Redondo red = (Pelota)new PelotaDeFutbol();


Respuestas.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.