在Java的学习过程中遇到了这样一段代码:
public class Test1 {int a=1;public static void main(String []args){System.out.println("java");}public Test1(){System.out.println("构造函数");}
}
它的运行结果是这样的,构造函数中的语句并没有被执行:
这是因为运行 Java 程序时,Java 虚拟机 (JVM) 将只自动调用您指定为入口点的类的 main
方法。类的构造函数不会被调用,除非显式地创建该类的对象,并在 main
方法或其他方法中调用构造函数。
正确示例如下:
public class Test1 {// Constructorpublic Test1() {System.out.println("Constructor is called");}// Main methodpublic static void main(String[] args) {System.out.println("Main method is called");// Creating an object of MyClassTest1 myTest = new Test1();// Other code...}
}
在这个示例中,main
函数将第一个被执行,它明确地使用构造函数创建了一个Test1
对象。这时构造函数被调用。
因此,在运行Java程序时,构造函数不会被自动调用,它需要通过创建类的实例来调用。
结果如图所示: