在Java中创建空对象?

在Java中创建空对象?,java,object,Java,Object,你是怎么做的?就这么简单吗? Name myName = new Name(); 我有点困惑。它应该是一个没有实例变量的类。我只需要“创建一个空对象”。构造函数当然也是空的。这取决于你所说的空是什么意思。您所做的是实例化一个对象。如果对象构造函数初始化了名称对象的字段,则对象字段具有分配给它们的值。调用new时,这些字段的内存也已分配。所以,即使您没有给它们赋值,它们实际上也存在于内存中,只是没有初始化 如果Name具有无参数构造函数,请确定。它是否为“空”取决于构造函数的功能或默认值 你怎么

你是怎么做的?就这么简单吗?

Name myName = new Name();

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

这取决于你所说的空是什么意思。您所做的是实例化一个对象。如果对象构造函数初始化了名称对象的字段,则对象字段具有分配给它们的值。调用new时,这些字段的内存也已分配。所以,即使您没有给它们赋值,它们实际上也存在于内存中,只是没有初始化

如果
Name
具有无参数构造函数,请确定。它是否为“空”取决于构造函数的功能或默认值

你怎么定义“空对象”呢

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

Name myName;
在这种情况下,
myName
将为
null
,但类型为
Name
,以后可以这样使用(一旦分配了值)

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

用java术语来说,“空对象”是非常模糊的。我可以这样理解:

Object empty = new Object();
这是你能创建的最空的对象

但是以你为例,

Name myName = new Name();

这将根据您在默认构造函数中输入的任何代码创建一个对象。(我想,如果你把所有东西都设置为默认值,那么它是相当空的)

根据你的定义,“空对象”是什么?是的,就这么简单,但正如凯帕尼所问,你的目标是什么。你应该详细说明你的理解。我对你的问题有点困惑,因为它非常模糊。对象存在或不存在(空)。可能是空的,这取决于你正在学习的课程,你没有向我们展示的东西。请澄清您的问题。新对象中的字段已初始化;如果您不为它们分配任何内容,它们将被初始化为0、
false
null
。那么这在什么上下文中起作用?这看起来像是一个构造函数的声明(虽然我的Java有点生疏),但它缺少构造函数体。如果没有更完整的上下文,就很难说这句话是否正确。很抱歉构造函数将保持空白,并且没有主体。我认为这是正确的,我过度分析了这个问题,没有什么新的。我的下一次头痛。