【发布时间】:2018-09-20 23:43:06
【问题描述】:
这是我关于 stackoverflow 的第一个问题,所以如果我没有正确提问,请给我一些关于如何更恰当地提问的见解。
我对如何在 Node 类中创建复制构造函数和克隆方法有点困惑。我了解如何为一般对象制作副本和克隆(不实现可克隆),但我还是 LinkedLists 的新手。
这是迄今为止我为 Node 类(LinkedList 类的内部类)编写的部分代码
private class Node
{
private Foo fooObject;
private Node link;
public Node()
{
fooObject= null;
link = null;
}
public Node(Foo fooObject, Node link )
{
this.fooObject = fooObject;
this.setLink(link);
}
public Node(Node originalNode)
{
this(originalNode.getCourse(), originalNode.getLink());
}
public Node clone()
{
return new Node(this);
}
public Foo getFoo()
{
return fooObject;
}
public void setFoo(Foo fooObject)
{
this.fooObject = fooObject;
}
public Node getLink()
{
return link;
}
public void setLink(Node link)
{
this.link = link;
}
}
复制一个 Node 对象对我来说仍然没有多大意义。当您实际使用 Node 对象时,这不会复制已经链接到另一个节点的节点吗?副本和原件将链接到同一个节点,除了副本没有链接到它的节点?如果我只是感到困惑,请帮助我理解,我不明白如何使用它。
为了澄清起见,我试图解决的问题是在学校的实验室里提出的。 “用内部类编写一个 LinkedList 类……内部类有一个复制构造函数和一个克隆方法……确保你的复制构造函数和克隆方法产生深层副本……”
*编辑 只是想澄清一些事情,被要求在 LinkedList 类和内部 Node 类中编写一个复制构造函数和克隆方法。我100%确定这一点,我没有时间问TA澄清,因为太多人问她问题了! *
谢谢!
【问题讨论】:
-
你确定它说 inner 类有一个复制构造函数...?我同意这没有多大意义,但你的实现是正确的。
-
是的,我 100% 确定,它要求为 LinkedList 类和内部 Node 类编写复制构造函数和克隆方法。我很困惑,因为我以前从未见过,但作为你第二个试图澄清这一点的人,TA 或教授可能只是犯了一个错误。上课时间我没有机会和助教澄清。顺便说一句,感谢您快速回复!
标签: java nodes clone copy-constructor singly-linked-list