在 C++ 中,当我创建如下所示的对象时,无法为同一类创建更多对象。
Box Box; //Box is the class Name
这里 Box 变成了一个对象,每当我们再次使用 Box
时,编译器就会将它识别为一个对象。但对于 java 而言,情况并非如此。
Box Box = new Box();
Box box = new Box(); //valid
这背后的原因是什么?
最佳答案
从表面上看,Java 的语法规则集略有不同。当语法说你有一个带有初始值设定项的变量声明时,例如:
Box box = new Box();
... 它知道 Box
必须是类型的名称,而不是变量的名称。因此,范围内是否有一个名为 Box
的变量并不重要。 (这也适用于 new
运算符。)
我不知道 C++ 语法的私密细节,但听起来它并没有被设置为做出这种区分,至少在你给出的例子中是这样。它本身并不是一个功能 - 这只是编译器如何查找名称的问题。
关于java - 在java中创建与类同名的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27618252/