class Temp
{
   {
      System.out.println("this is in it block");
   }


   public static void main(String... s)
   {
      System.out.println("abhi");
   }
}

上面的代码没有打印 init 块的内容,但我们知道 init 块是构造函数的第一行。

但另一方面,如果我使用 new Temp(); 它会被打印出来。为什么这样?

如果构造函数在每个类中,上面的代码也应该在没有对象初始化的情况下打印它。不应该吗?

最佳答案

您的代码中没有任何内容调用构造函数,因此实例 init 块也永远不会被调用。



不,为什么要这样做?你必须调用它才能发生这种情况。它不会仅仅因为它存在就运行。

关于java - Java中的每个类都必须有一个构造函数吗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12340543/

10-16 05:11