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()递增其值。
这个问题的测验
如果您在以上帖子中发现任何错误,请在下面发表评论