Salida de Programas Java | Conjunto 14 (Constructores)

Requisito previo: constructores de Java

1) ¿Cuál es la salida del siguiente programa?

class Helper
{
    private int data;
    private Helper()
    {
        data = 5;
    }
}
public class Test
{
    public static void main(String[] args)
    {
        Helper help = new Helper();
        System.out.println(help.data);
    }
}

a) Error de compilación
b) 5
c) Error de tiempo de ejecución
d) Ninguno de estos

Respuesta (a)
Explicación: No se puede usar un constructor privado para inicializar un objeto fuera de la clase en la que está definido porque ya no es visible para la clase externa.

2) ¿Cuál es la salida del siguiente programa?

public class Test implements Runnable
{
    public void run()
    {
        System.out.printf(" Thread's running ");
    }
  
    try
    {
        public Test()
        {
            Thread.sleep(5000);
        }   
    } 
    catch (InterruptedException e) 
    {
        e.printStackTrace();
    }
      
    public static void main(String[] args)
    {
        Test obj = new Test();
        Thread thread = new Thread(obj);
        thread.start();
        System.out.printf(" GFG ");
    }
}

a) El subproceso GFG se está ejecutando
b) El subproceso se está ejecutando GFG
c) Error de compilación
d) Error del temporizador de ejecución

Respuesta (c)
Explicación: Un constructor no puede encerrarse dentro de un bloque try/catch.

3) ¿Cuál es la salida del siguiente programa?

class Temp
{
    private Temp(int data)
    {
        System.out.printf(" Constructor called ");
    }
    protected static Temp create(int data)
    {
        Temp obj = new Temp(data);
        return obj;
    }
    public void myMethod()
    {
        System.out.printf(" Method called ");
    }
}
  
public class Test
{
    public static void main(String[] args)
    {
        Temp obj = Temp.create(20);
        obj.myMethod();
    }
}

a) Constructor llamado Método llamado
b) Error de compilación
c) Error de tiempo de ejecución
d) Ninguno de los anteriores

Respuesta (a)
Explicación: cuando un constructor se marca como privado, la única forma de crear un nuevo objeto de esa clase desde alguna clase externa es usando un método que crea un nuevo objeto, como se definió anteriormente en el programa. El método create() es responsable de la creación del objeto Temp desde alguna otra clase externa. Una vez que se crea el objeto, su método se puede invocar desde la clase en la que se crea el objeto.

4) ¿Cuál es el resultado del siguiente programa?

public class Test
{
    public Test()
    {
        System.out.printf("1");
        new Test(10);
        System.out.printf("5");
    }
    public Test(int temp)
    {
        System.out.printf("2");
        new Test(10, 20);
        System.out.printf("4");
    }
    public Test(int data, int temp)
    {
        System.out.printf("3");
          
    }
      
    public static void main(String[] args)
    {
        Test obj = new Test();
          
    }
      
}

a) 12345
b) Error de compilación
c) 15
d) Error de ejecución

Respuesta (a)
Explicación: Los constructores se pueden enstringr y sobrecargar. Cuando se llama a Test(), crea otro objeto Test llamando al constructor Test(int temp).

5) ¿Cuál es la salida del siguiente programa?

class Base
{
    public static String s = " Super Class ";
    public Base()
    {
        System.out.printf("1");
    }
}
public class Derived extends Base
{
    public Derived()
    {
        System.out.printf("2");
        super();
    }
      
    public static void main(String[] args)
    {
        Derived obj = new Derived();
        System.out.printf(s);
    }
}

a) 21 Super Clase
b) Super Clase 21
c) Error de compilación
d) 12 Super Clase
Res. (c)
Explicación: La llamada del constructor a la superclase debe ser la primera declaración en el constructor de la clase Derivada.
privado
Este artículo es una contribución de Mayank Kumar . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *