在 Java 中创建空对象?

新手上路,请多包涵

你是怎么做到的?是不是就这么简单:

 Name myName = new Name();

我有点困惑。它应该是一个没有实例变量的类。我只需要“创建一个空对象”。当然,构造函数也将为空。

原文由 Java Newb 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

如果 Name 有一个无参数的构造函数,当然。它是否“空”取决于构造函数的作用或它可能具有的默认值。

无论如何,您如何定义“空对象”?

例如,如果你想要一个变量但不希望它实际上有一个对象,你可以只声明变量而不初始化它:

 Name myName;

在这种情况下 myName 将是 null (或“未分配”?取决于上下文),但将是类型 Name 以后可以这样使用(一旦它被分配了一个值)。

变量本身所做的只是指向内存中“对象”所在的位置。所以像 Name myName 这样的东西不会“创建”一个对象,它只是创建指向内存位置的指针。 new Name() 实际上是通过调用它的构造函数来创建一个对象。当像您的示例一样一起使用时,后半部分创建对象,然后前半部分指向内存中对象所在的位置。

原文由 David 发布,翻译遵循 CC BY-SA 4.0 许可协议

“空对象”在 Java 术语中非常模糊。我可以这样解释:

 Object empty = new Object();

这是关于您可以创建的最空的对象。

但是在你的例子中,

 Name myName = new Name();

这将根据您在默认构造函数中放置的任何代码创建一个对象。 (我想如果你将所有内容都设置为默认值,那是很空的)

原文由 yamafontes 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏