开发者社区> 问答> 正文

如何在Java中创建指针(有效)

我知道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],这就是为什么我认为将其静态化的原因,但是当我以后将神奇宝贝添加到数组中时,party [0]会包含神奇宝贝,但currentPokemon为null。如何获得类似指针的行为?

问题来源:Stack Overflow

展开
收起
montos 2020-03-23 11:21:53 820 0
1 条回答
写回答
取消 提交回答
  • static成员属于类,并且由所有实例共享。每次创建新实例时,您都将覆盖currentPokemon的值(在构造函数中)。删除static修饰符,您应该可以:

    public class Player {
    
        public String name;
        public Pokemon[] party;
        public Pokemon currentPokemon; // Here
    

    编辑: 克里斯蒂安·库克(Christian Cook)的最后评论,我想我现在已经理解了问题陈述。currentPokemon在构造函数中用初始化party[0],当然是null,因为它是party在上一行创建的。与c(++)中的指针不同,它currentPokemon不会在when时更新party-它不是指针,它只是对值party[0]初始化时的引用。

    获得所需行为的最简单方法是不存储currentPokemon为成员,而是具有一种检索它的方法:

    public Pokemon getCurrentPokemon() {
        return party[0];
    }
    

    回答来源:Stack Overflow

    2020-03-23 11:23:02
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载