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