如何在Java中创建(有效的)指针
我知道Java中没有指针类型,但我有一个对象数组,我需要一些东西像指向数组第一个元素的指针一样工作,不管它是什么或者指针对象改变了多少次。这是我正在开发的一款口袋妖怪游戏,在玩家类中,我有如何在Java中创建(有效的)指针,java,pointers,static,Java,Pointers,Static,我知道Java中没有指针类型,但我有一个对象数组,我需要一些东西像指向数组第一个元素的指针一样工作,不管它是什么或者指针对象改变了多少次。这是我正在开发的一款口袋妖怪游戏,在玩家类中,我有 public class Player { public String name; public Pokemon[] party; public static Pokemon currentPokemon; public Player(){ this.par
public class Player {
public String name;
public Pokemon[] party;
public static Pokemon currentPokemon;
public Player(){
this.party = new Pokemon[6];
currentPokemon = party[0];
}
}
我需要currentPokemon始终“指向”参与方[0],这就是为什么我认为它是静态的,但当我后来将pokemon添加到数组中时,参与方[0]包含pokemon,但currentPokemon为空。如何获得这种类似指针的行为?
静态
成员属于类,并由所有实例共享。每次创建新实例时,都会覆盖currentPokemon
的值(在构造函数中)。删除静态
修改器,您应该可以:
public class Player {
public String name;
public Pokemon[] party;
public Pokemon currentPokemon; // Here
编辑:Christian Cook的最后一句话,我想我现在理解了问题陈述
currentPokemon
在构造函数中用party[0]
初始化,当然是null
,因为party
刚刚在前一行创建。与c++中的指针不同,currentPokemon
不会在party
更新时更新-它不是指针,只是对party[0]
初始化时的值的引用
获取所需行为的最简单方法是不要将currentPokemon
存储为成员,而是使用一种方法来检索它:
公共口袋妖怪getCurrentPokemon(){
返回方[0];
}
静态
成员属于类,由所有实例共享。每次创建新实例时,都会覆盖currentPokemon
的值(在构造函数中)。删除静态
修改器,您应该可以:
public class Player {
public String name;
public Pokemon[] party;
public Pokemon currentPokemon; // Here
编辑:Christian Cook的最后一句话,我想我现在理解了问题陈述
currentPokemon
在构造函数中用party[0]
初始化,当然是null
,因为party
刚刚在前一行创建。与c++中的指针不同,currentPokemon
不会在party
更新时更新-它不是指针,只是对party[0]
初始化时的值的引用
获取所需行为的最简单方法是不要将currentPokemon
存储为成员,而是使用一种方法来检索它:
公共口袋妖怪getCurrentPokemon(){
返回方[0];
}
您可以指向这样的数组
Pokemon[] currentPokemon=party
现在,party和currentPokemon指向同一个对象数组。操纵Pokemon会导致操纵party
希望这有点帮助。:) 您可以指向这样的数组
Pokemon[] currentPokemon=party
现在,party和currentPokemon指向同一个对象数组。操纵Pokemon会导致操纵party
希望这有点帮助。:) Java中没有指针。你几乎总是可以做你想做/需要做的事,但你必须想出另一种方法来做。这是思维方式的转变。你为什么需要这些事情发生?我的项目中还有其他类,它们的方法可以更改存储在玩家方数组中的口袋妖怪,所以我只是想用一种更可读的方法来获取当前的口袋妖怪,每次我想使用它时都不用说party[0]。我知道,你不能用任何语言实现这样的魔法指针,更不用说Java了,Java中没有指针。你几乎总是可以做你想做/需要做的事,但你必须想出另一种方法来做。这是思维方式的转变。你为什么需要这些事情发生?我的项目中还有其他类,它们的方法可以更改存储在玩家方数组中的口袋妖怪,所以我只是想用一种更可读的方法来获取当前的口袋妖怪,每次我想使用它时都不用说party[0]。我知道,你不能用任何语言实现这样的魔法指针,更不用说Java了。我最初是这样尝试的,但即使参与方[0]包含有效的口袋妖怪,currentPokemon仍然为null。非常感谢!我最初是这样尝试的,但即使参与方[0]包含有效的口袋妖怪,currentPokemon仍然为空。非常感谢!那么,为什么不直接使用聚会呢?这不是他想要的。那为什么不直接用派对呢?这不是他想要的。