Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中创建(有效的)指针_Java_Pointers_Static - Fatal编程技术网

如何在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

我知道Java中没有指针类型,但我有一个对象数组,我需要一些东西像指向数组第一个元素的指针一样工作,不管它是什么或者指针对象改变了多少次。这是我正在开发的一款口袋妖怪游戏,在玩家类中,我有

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仍然为空。非常感谢!那么,为什么不直接使用聚会呢?这不是他想要的。那为什么不直接用派对呢?这不是他想要的。