ConstructorWithoutNewDRAFT
One can write the constructor name, without new, to instantiate a class
The constructor name needs to come after the keyword new to instantiate a class
CorrectionHere is what's right.
One cannot call the constructor without using the new
keyword.
The new
in front stands for the object allocation,
the constructor performs the subsequent object initialization.
Those two parts are inseparable,
thus one always has to write new Point(1, 2)
,
and writing just Point(1, 2)
is a mistake.
Implicit Allocation
String
and array literals also represent objects.
They are allocated implicitly,
without specifying a constructor name or the new
keyword.
Similarly, autoboxing can allocate objects implicitly,
and the +
operator with at least one String
argument
will allocate a new String
.
Language
Concepts
Expressible In
Literature References
The following papers directly or indirectly provide qualitative or quantitative evidence related to this misconception.