你是怎么做到的?是不是就这么简单:
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 许可协议
8 回答6.5k 阅读
4 回答693 阅读✓ 已解决
2 回答3.4k 阅读
3 回答1.9k 阅读✓ 已解决
1 回答2.2k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答967 阅读✓ 已解决
如果
Name
有一个无参数的构造函数,当然。它是否“空”取决于构造函数的作用或它可能具有的默认值。无论如何,您如何定义“空对象”?
例如,如果你想要一个变量但不希望它实际上有一个对象,你可以只声明变量而不初始化它:
在这种情况下
myName
将是null
(或“未分配”?取决于上下文),但将是类型Name
以后可以这样使用(一旦它被分配了一个值)。变量本身所做的只是指向内存中“对象”所在的位置。所以像
Name myName
这样的东西不会“创建”一个对象,它只是创建指向内存位置的指针。new Name()
实际上是通过调用它的构造函数来创建一个对象。当像您的示例一样一起使用时,后半部分创建对象,然后前半部分指向内存中对象所在的位置。