Java 如何将复制构造函数构建到CharNode
这是我的CharNode类Java 如何将复制构造函数构建到CharNode,java,Java,这是我的CharNode类 public class CharNode { private char _data; private int _value; private CharNode _next; public CharNode(char c, int val, CharNode n) { _data = c; _value = val; _next = n; }
public class CharNode
{
private char _data;
private int _value;
private CharNode _next;
public CharNode(char c, int val, CharNode n)
{
_data = c;
_value = val;
_next = n;
}
public CharNode getNext( )
{ return _next; }
public void setNext(CharNode node)
{ _next = node; }
public int getValue()
{ return _value; }
public void setValue(int v)
{ _value = v; }
public char getData()
{ return _data; }
public void setData(char c)
{ _data = c; }
}
我使用这个使用CharNode的类StringList
private CharNode _head;
//Stringlist have constractor
public StringList ()
_head= null;
//and
StringList (charNode node)
_head = node;
我需要构建复制构造函数,我该怎么做?复制构造函数引用需要复制的对象,并使用传入的对象属性值对其自身进行初始化:
public CharNode(CharNode node) {
_data = node._data;
_value = node._value;
_next = node._next;
}
将引用复制到链中的下一个对象可能不是您所需要的
这将导致两个节点指向同一个下一个节点
另外,您应该检查传入的节点是否不是
null
,如果是null
,则抛出IllegalArgumentException
,通常您会从对象类实现clone()
方法,但由于您是Java新手,只要实现一个方法就很容易了
public MyObject cloneMyObject(MyObject myObject) {
MyObject cloneMyObject = new MyObject();
cloneMyObject.field1 = myObject.field1; //shallow clone
cloneMyObject.field1 = myObject.field1.cloneThisObject(); //deep clone
//and so on;
return cloneMyObject;
}
另请参见。您尝试了什么?或者你们只是想从我们那个里得到家庭作业决策的完整代码?若你们知道复制构造函数是什么,我看不出你们会有什么困难。你试过什么?你有什么问题吗?我不能使用java buils obj,我只需要让它由我复制构造函数get other StringList复制值这是构造函数的名称这是LINKNODE public StringList(StringList other),那么你想要的通常不是复制构造函数。它是一个封送器(to String)和一个解封器(from String)。复制构造函数通常通过将源对象的内部字段复制到新构造的副本中来复制同一对象的副本。就像我说的复制构造函数不能使用java的内置类一样,我需要在复制构造函数上构建副本。承包商的建议是:**公共StringList(StringList other)**我发送了一个新的StringList字符串,副本是Value的,请帮助我最好地考虑这个副本承包商需要像公共StringList(StringList other)一样,就像我说的副本承包商不能使用java的内置类,我需要构建我的副本承包商。承包商的歌声是:**公共字符串列表(其他字符串列表)**我发送了一个新字符串的字符串列表,副本是Value的,请帮我问候