2015-06-29 43 views
0

很多人都说java中的构造函数是Non-static ..! 要初始化对象,我们需要构造函数。因此,我们可以使用没有对象的构造函数,那么构造函数必须是静态的。在Java中,构造函数是非静态的吗?

+1

很难理解你想说什么/问。请再试一次 – musefan

+0

我认为这是一个很好的哲学问题:)构造函数是一种奇怪的方法 - 它同时属于类和新实例...所以我理解OP的观点。 –

+0

我认为这是一个问题和自我回答的尝试,但目前尚不清楚。如果是这样,请编辑您的问题,以便它只包含问题部分(尽管您可能想添加一些关于导致混淆的细节),然后在答案区域添加答案。 – BSMP

回答

4

构造函数有一个实例(this可用)。因此,根据定义,它不是静态的。

JRE在创建实例后运行构造函数。

0

嗯,这不是关于“很多人的想法”,而是关于定义。作为Java Language Specification说:

一种实例方法总是相对于调用的对象,成为当前对象到其中的关键字thissuper方法体的执行期间参考。

未声明static的方法被称为实例方法,并且有时被称为非静态方法。

正如你所thissuper构造的环境下定义,你必须考虑构造为非静态方法,但是我理解其背后的职务的想法,new负有一定静电功能:

  • 你之前调用new你有准备的情况下
  • new不虚
0

Java中的构造函数构造不用于对象,而是用于初始化对象。构造函数是在实例化对象之后由JVM运行的第一个方法。

0

在Java构造函数中不能是静态的或同步的。一个对象只能由一个线程构造(创建+初始化),而构造器则在已创建的实例上运行 - 意味着在非静态的上下文中。