Java | Constructores | Pregunta 8

class Test
{
    static int a;
      
    static
    {
        a = 4;
        System.out.println ("inside static block\n");
        System.out.println ("a = " + a);
    }
      
    Test()
    {
        System.out.println ("\ninside constructor\n");
        a = 10;
    }
      
    public static void func()
    {
        a = a + 1;
        System.out.println ("a = " + a);
    }
      
    public static void main(String[] args)
    {
  
        Test obj = new Test();
        obj.func();
  
    }
}
  

(A)

inside static block
a = 4
inside constructor
a = 11

(B) Error del compilador
(C) Error de tiempo de ejecución
(D)

inside static block
a = 4
inside constructor
a = 5

(MI)

inside static block
a = 10
inside constructor
a = 11

Respuesta: (A)
Explicación: Los bloques estáticos se llaman antes que los constructores. Por lo tanto, en la creación del objeto de la clase Test, se llama al bloque estático. Entonces, la variable estática a = 4.
Luego se llama al constructor Test() que asigna a = 10. Finalmente, la función func() incrementa su valor.
Cuestionario de esta pregunta
Comente a continuación si encuentra algo incorrecto en la publicación anterior

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 *