你是怎么做到的?是不是就这么简单:
Name myName = new Name();
我有点困惑。它应该是一个没有实例变量的类。我只需要“创建一个空对象”。当然,构造函数也将为空。
原文由 Java Newb 发布,翻译遵循 CC BY-SA 4.0 许可协议
你是怎么做到的?是不是就这么简单:
Name myName = new Name();
我有点困惑。它应该是一个没有实例变量的类。我只需要“创建一个空对象”。当然,构造函数也将为空。
原文由 Java Newb 发布,翻译遵循 CC BY-SA 4.0 许可协议
“空对象”在 Java 术语中非常模糊。我可以这样解释:
Object empty = new Object();
这是关于您可以创建的最空的对象。
但是在你的例子中,
Name myName = new Name();
这将根据您在默认构造函数中放置的任何代码创建一个对象。 (我想如果你将所有内容都设置为默认值,那是很空的)
原文由 yamafontes 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
如果
Name
有一个无参数的构造函数,当然。它是否“空”取决于构造函数的作用或它可能具有的默认值。无论如何,您如何定义“空对象”?
例如,如果你想要一个变量但不希望它实际上有一个对象,你可以只声明变量而不初始化它:
在这种情况下
myName
将是null
(或“未分配”?取决于上下文),但将是类型Name
以后可以这样使用(一旦它被分配了一个值)。变量本身所做的只是指向内存中“对象”所在的位置。所以像
Name myName
这样的东西不会“创建”一个对象,它只是创建指向内存位置的指针。new Name()
实际上是通过调用它的构造函数来创建一个对象。当像您的示例一样一起使用时,后半部分创建对象,然后前半部分指向内存中对象所在的位置。