为什么java中在普通函数不能够调用构造函数

为什么java中在普通函数不能够调用构造函数?

构造函数一般是属于类的,由系统调用。
而普通函数属于对象,我们调用普通函数,其实默认省略了this,即当前对象。
所以,java在普通函数中不能够调用构造函数,构造函数并不属于当前对象。

首先,在java中构造函数是不需要主动调用的,创建一个对象时jvm会自动调用构造函数。但是我们就是想调用的话,我知道有几种可以实现的情况:
1.在某个构造函数的第一行调用其他的构造函数。
2.通过子类调用super()来调用父类的构造函数。
3.通过反射调用
但是这三种的本质上都是在构造函数里调用其他的构造函数。也就是说,java中只能在构造方法里调用构造函数而且不能多次调用。例如我要在无参的构造方法里调用有参的构造方法,可以在无参构造方法中的第一行加入this(xxx,xxx);这样调用的的本质是返回类对象,对于一个对象而言,构造方法依旧不能被调用多次。
因此在普通函数中,是无法调用构造函数的。