我刚刚开始学习Java,我对用于创建新对象的语法感到有些困惑。
采取以下措施:
SomeClass someObject = new SomeClass(1, 2, 3);
new
之后的语法究竟是什么?是构造函数调用本身还是只是带有一些参数的类名? new
是否会查看它并知道根据这些参数调用哪个构造函数,或构造函数调用本身是SomeClass(1, 2, 3)
?
我想知道创建someObject
时的步骤以及new
的角色是什么。
在SomeClass(1, 2, 3)
实际构造函数调用同一行之后,我不明白...... new
是什么?或者稍后由new
调用?
更新
我混淆的根源可能是new
背后使用的术语。事实证明,new
根本不是运营商。 new
实际上是一个关键字。这对我来说更有意义。
答案 0 :(得分:1)
new
,指定的Type(SomeClass
),括号()
和可能的参数等是一个表达式的一部分,根据JLS" {{3} }&#34 ;.
因此将new
与表达式的各个部分分开是没有意义的。
(但构造函数的参数是在内存分配之后但在调用构造函数之前计算的。)
答案 1 :(得分:0)
是。它确实调用了对象的构造函数。 实例化一个,如Object creation中所述: -
new运算符通过为new分配内存来实例化一个类 对象并返回对该内存的引用。新的运营商也 调用对象构造函数。
new运算符需要一个后缀参数:对构造函数的调用。构造函数的名称提供了要实例化的类的名称。