在Java的学习过程中遇到了这样一段代码:
public class Test1 {int a=1;public static void main(String []args){System.out.println("java");}public Test1(){System.out.println("构造函数");}
}
它的运行结果是这样的,构造函数中的语句并没有被执行:
这是因为运行 Java 程序时,Java 虚拟机只自动调用指定为入口的类的 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
对象。这时构造函数被调用。
结果如图所示: