public class IntList {
private IntNode _head;
public IntList() {
_head = null;
}
}
我创建了一个名为IntList的类。 IntList包含一种用于搜索具有指定int值的IntNode对象的方法。这是方法:
public boolean findElementInList(int value) {
IntNode currentNode = this._head;
while (currentNode.getValue() != value &&
currentNode.getNext () != null) {
currentNode = currentNode.getNext();
}
return (currentNode.getValue() == value);
}
方法完成后,原始的
_head
实例变量是完整的-但是为什么呢? currentNode
指向方法(别名)中的_head
,并且对currentNode
所做的每个更改也应反映在_head
中(每次运行currentNode = currentNode.getNext();
时)。这是
getNext()
的代码:public IntNode getNext( ) {return _next;}
最佳答案
您首先将head的值分配给currentNode。可以将其想象为2个不同的指针指向内存中的相同值。但是然后您继续将列表中的下一个值分配给currentNode,而_head保持不变。顺便说一句,如果您更改头值,则将失去列表的头。
关于java - 将一个变量分配给另一个变量后,为什么更改一个变量不会更改另一个变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35117316/