我知道Java中没有指针类型,但是我有一个对象数组,并且我需要一些东西来像指向数组第一个元素的指针一样工作,无论它是什么或指针改变了多少次。这是我正在开发的 Pokemon 游戏,在 Player 类中,我有
public class Player {
public String name;
public Pokemon[] party;
public static Pokemon currentPokemon;
public Player(){
this.party = new Pokemon[6];
currentPokemon = party[0];
}
}
我需要 currentPokemon 始终“指向” party[0],这就是为什么我想将其设为静态,但是当我稍后将 pokemon 添加到数组中时,party[0] 包含 Pokemon 但 currentPokemon 为空。我如何获得这种类似指针的行为?
最佳答案
static
成员属于类,并由所有实例共享。每次创建新实例时,都会覆盖 currentPokemon 的值(在构造函数中)。删除 static
修饰符,你应该没问题:
public class Player {
public String name;
public Pokemon[] party;
public Pokemon currentPokemon; // Here
编辑:
根据克里斯蒂安·库克的最后评论,我想我现在理解了问题陈述。 currentPokemon
在构造函数中用 party[0]
初始化,当然是 null
,因为 party
只是在上一行创建。与 c(++) 中的指针不同,currentPokemon
不会在 party
更新时更新 - 它不是指针,它只是对值 的引用party[0]
在初始化时就有。
获得您正在寻找的行为的最简单方法是不将 currentPokemon
存储为成员,而是有一个方法来检索它:
public Pokemon getCurrentPokemon() {
return party[0];
}
关于java - 如何在 Java 中创建(实际上是)指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60700491/