java - 在java中创建与类同名的对象

标签 java c++ object constructor

在 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/

相关文章:

c++ - 使用c++的数据结构

Javascript 从对象中获取相应的键/值

java - 错误的第三个论点,但应该通过视频教程工作

java - 如何测试Spring Webmvc webservice rest

java - 如何将欢迎页面设置为 struts 操作?

java - 服务架构- webservies | SOAP

c++ - 直接初始化中的转换运算符

c++ - C++ 结构成员模板函数的显式特化——这是 Visual Studio 的问题吗?

Javascript 在函数内部使对象字面量等于 {},

通过类/对象的 PHP 多个 MySQL 连接?