Java | Constructors | Question 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) Compiler Error
(C) Run Time Error
(D)
inside static block a = 4 inside constructor a = 5
(E)
inside static block a = 10 inside constructor a = 11
Answer: (A)
Explanation: Static blocks are called before constructors. Therefore, on object creation of class Test, static block is called. So, static variable a = 4.
Then constructor Test() is called which assigns a = 10. Finally, function func() increments its value.
Quiz of this Question
Please comment below if you find anything wrong in the above post
Please Login to comment...