你打算怎么做?是不是就这么简单:
Name myName = new Name();
Run Code Online (Sandbox Code Playgroud)
我有点困惑。它应该是一个没有实例变量的类。我只需要“创建一个空对象”。构造函数当然也将为空。
如果Name有无参数构造函数,当然可以。它是否为“空”取决于构造函数的作用或它可能具有的默认值。
无论如何,你如何定义“空对象”?
例如,如果您想要一个变量但不希望它实际上有一个对象,您可以只声明该变量而不初始化它:
Name myName;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,myName将是null(或“未分配”?取决于上下文),但将是类型Name,并且可以在以后这样使用(一旦为其分配了值)。
变量本身所做的只是指向内存中“对象”存在的位置。所以类似的东西Name myName不会“创建”对象,它只是创建指向内存位置的指针。 new Name()实际上通过调用其构造函数来创建一个对象。当像在您的示例中一样一起使用时,后半部分创建对象,然后前半部分指向对象所在的内存位置。
在 Java 术语中,“空对象”非常含糊。我可以这样解释:
Object empty = new Object();
Run Code Online (Sandbox Code Playgroud)
这是关于您可以创建的最空的对象。
但是在你的例子中,
Name myName = new Name();
Run Code Online (Sandbox Code Playgroud)
这将根据您放入默认构造函数的任何代码创建一个对象。(我想如果您将所有内容都设置为默认值,则非常空)
| 归档时间: |
|
| 查看次数: |
52587 次 |
| 最近记录: |