我如果把HelloWorld的构造方法改成void,创建对象的时候就不会调用了,必须得单独调用方法,为什么?
我如果把HelloWorld的构造方法改成void,创建对象的时候就不会调用了,必须得单独调用方法,为什么?
public class HelloWorld {
int num1;
int num2;
static int num3;
//这里改成void就是不一样的效果,在主函数中创建对象的时候就不会自动调用这个方法了,为啥??
public void HelloWorld() {
num1 = 91;
System.out.println("通过构造方法为num1变量赋值");
}
{
num2 = 74;
System.out.println("通过初始化块方式为num2变量赋值");
}
static {
num3 = 100;
System.out.println("通过静态初始化块方式为num3变量赋值");
}
public static void main(String[] args) {
HelloWorld hello = new HelloWorld();
//hello.HelloWorld();//单独调用方法的时候才能打印出"通过构造方法为num1变量赋值",否则不可以
System.out.println("num1:"+hello.num1);
System.out.println("num2:"+hello.num2);
System.out.println("num3:"+num3);
HelloWorld hello2 = new HelloWorld();
//hello2.HelloWorld();
}
}
输出结果:
通过静态初始化块方式为num3变量赋值
通过初始化块方式为num2变量赋值
num1:0
num2:74
num3:100
通过初始化块方式为num2变量赋值