在编程中,标准做法是通过仅将其地址分配给一个引用变量来为每个对象指定自己唯一的名称。
如果我们将一个引用变量分配给另一个引用变量,它会为同一事物创建两个不同的名称。有人问我什么时候这样做有用。
什么时候使用模棱两可的名称有用?我能看到这样做的唯一原因是如果您需要复制对象的值以防止覆盖。
你描述的不是歧义,而是混叠(特别是指针混叠)。
您通常不会显式执行此操作,但如果将引用/指针传递给另一个方法,它会非常有用。然后至少两个变量(原始变量和参数)将引用同一个对象,但原因不同。
如果你明确地这样做,那么通常是因为两个变量扮演两个不同的角色。
例如,如果您正在编写遍历树的代码,则通常从根开始。因此,代码的开头可能如下所示:
TreeNode rootNode = getTreeRootFromSomewhere();
TreeNode currentNode = rootNode;
while (currentNode != null) {
...
在这种情况下,此时currentNode
显然是rootNode
的别名。稍后我们肯定会更改currentNode
指向的内容,但是当您第一次进入循环时,它们指向同一对象。