gpt4 book ai didi

java - 如何在 Java 中创建(实际上是)指针

转载 作者:行者123 更新时间:2023-12-02 01:00:29 25 4
gpt4 key购买 nike

我知道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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com