Java构造函数是一个方法吗?

noo*_*mer 3 java constructor

这个问题真的令人困惑

A ________是一种与该类同名的特殊方法,只要实例化该类的对象,就会自动调用该方法.回答:

  • constructor

  • 二传手

  • 吸气

  • 静态方法

我在想构造函数是唯一与类同名的构造函数,但是等等!构造函数实际上不是一种方法,它与方法不同.所以我读了这篇文章并得出结论,这个问题格式错误,我是对的吗?

Roh*_*ain 8

Constructors实际上是一种特殊的方法,用于初始化新创建的实例的状态.当您创建如下实例时: -

A obj= new A();
Run Code Online (Sandbox Code Playgroud)

然后,使用new关键字创建类A的实例,然后在A()新创建的实例上调用构造函数.

进一步从那篇文章说: -

构造函数在生活中有一个目的:创建类的实例.

不,这是错的.构造函数不创建实例,它new是执行它的关键字.然后构造函数初始化如上所述创建的实例的状态.

来自JLS - Section 8.8: -

构造函数由类实例创建表达式(第15.9节),由字符串连接运算符+(第15.18.1节)引起的转换和连接以及来自其他构造函数的显式构造函数调用(第8.8.7节)调用.

构造函数永远不会被方法调用表达式调用(第15.12节).

也来自oracle教程

Point originOne = new Point(23,94);

上面的语句有三个部分(下面将详细讨论):

声明:以粗体设置的代码是将变量名称与对象类型相关联的所有变量声明.
实例化:new关键字是创建对象的Java运算符.
初始化:new运算符后面是对构造函数的调用,该构造函数初始化新对象.