我知道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
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。