我正在编写一个简单的两人游戏控制台应用程序,我想知道我是否可以执行以下操作。我对整个 Java 值传递/引用文章感到困惑......
Player p1 = new Player("John");
Player p2 = new Player("Sam");
Player current = p1;
while(p1.life > 0 && p2.life > 0) {
current.doSomething();
if(current.name.equals(p1.name)) {
current = p2;
} else {
current = p1;
}
}
我担心变量current
可能会被修改,但p1
或p2
不会被修改。我要修改的正是这两个实例。我只是不想为每个玩家复制整个代码块,从而导致非常庞大的 if-else 语句。
最佳答案
您的理解是错误的。当前
、p1
和p2
都是引用。您的案例中有 2 个实例和 3 个引用文献。因此,current
指向的实例可以被修改,这将反射(reflect)在 p1
或 p2
中。
关于java - 我可以使用另一个对象变量修改两个或多个对象实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29101084/