在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 {
// Constructor
public Test1() {
System.out.println("Constructor is called");
}
// Main method
public static void main(String[] args) {
System.out.println("Main method is called");
// Creating an object of MyClass
Test1 myTest = new Test1();
// Other code...
}
}
在这个示例中,main
函数将第一个被执行,它显式地使用构造函数创建了一个Test1
对象。这时构造函数被调用。
结果如图所示: