📜  Java |构造函数|问题8

📅  最后修改于: 2021-06-29 13:08:51             🧑  作者: Mango

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();
  
    }
}
  

(一种)

inside static block
a = 4
inside constructor
a = 11

(B)编译器错误
(C)运行时错误
(D)

inside static block
a = 4
inside constructor
a = 5

(E)

inside static block
a = 10
inside constructor
a = 11

答案: (A)
说明:静态块在构造函数之前被调用。因此,在创建Test类的对象时,将调用静态块。因此,静态变量a = 4。
然后调用构造函数Test(),它分配a =10。最后,函数func()递增其值。
这个问题的测验
如果您在以上帖子中发现任何错误,请在下面发表评论