为什么创建类对象hello2 会再执行一次 main方法上面的 那些语句? 求大家点赞顶一下 ,大神给个回复呀 TAT
你说的上面那些语句是构造函数、初始化块吗?在新建对象时候,都会调用类的构造函数、初始化块,对刚生成的对象hello2进行初始化的。这和原本你创建过其他对象无关。但是如果是静态的初始化块,只会在类加载时候被执行一次。可以看看JAVA入门第二季中的---Java 中的 static 使用之静态初始化块这一部分内容。
HelloWorld hello2=new HelloWorld();代码做了以下事情:
1、右边的“new HelloWorld”,是以HelloWorld类为模板,在堆空间里创建一个HelloWorld类对象(也简称为HelloWorld对象)。
2、末尾的()意味着,在对象创建后,立即调用HelloWorld类的构造函数,对刚生成的对象进行初始化。构造函数是肯定有的。如果没创建,Java会补上一个默认的无参构造函数。
3、左边的“HelloWorld hello2”创建了一个HelloWorld 类引用变量。
4、“=”操作符使对象引用指向刚创建的那个HelloWorld对象。
因为再一次对象实例化,来调用上面的语句,故再执行一次。