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