Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.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_Class - Fatal编程技术网

java之所以能够;混淆;同一类的不同实例?

java之所以能够;混淆;同一类的不同实例?,java,class,Java,Class,我有如下代码: player a=new player(4,10,2,3,"You",'@'); player b=new player(4,10,12,3,"Him",'@'); a.pickUp(new weapon("Lightsaber",true,1,1)); System.out.println(a.getPlayerInventory()[0]); System.out.println(b.getPlayerInventory()[0]); 然而,在这一点上,这段代码的

我有如下代码:

player a=new player(4,10,2,3,"You",'@'); 
player b=new player(4,10,12,3,"Him",'@');   
a.pickUp(new weapon("Lightsaber",true,1,1));
System.out.println(a.getPlayerInventory()[0]); 
System.out.println(b.getPlayerInventory()[0]);
然而,在这一点上,这段代码的输出告诉我,B的库存的内容也包括一把光剑。(与玩家A拥有的对象相同。)

java中出现这种情况的一些可能原因是什么?这可能与其他方法是静态的还是公共/私有的有关吗

我试过用谷歌搜索,但什么也找不到(可能是因为我不知道这个问题叫什么)


谢谢你能给我的任何帮助。

如果你有一个静态的玩家清单,那么如果a得到一把光剑,每个玩家都会有相同的光剑。

如果你有一个静态的玩家清单,那么如果a得到一把光剑,每个玩家都将拥有相同的光剑,而没有看到
玩家
类的实现,我不能肯定,但最有可能的解释是,包含玩家库存的数组被声明为
静态
,这意味着该类的所有实例都将共享该数组。

没有看到
player
类的实现,我不能肯定,但最有可能的解释是,包含该player清单的数组被声明为
static
,这意味着该类的所有实例都将共享该数组。

最有可能是静态字段。你有“player”类的代码吗?我想知道为什么人们在不知道它的含义的情况下编写
Static
。@Ingo:我的经验表明,他们从不使字段和方法静态开始,然后他们尝试从main方法使用它们,这会导致编译错误,然后发现它们可以使字段和方法保持静态以解决编译错误,然后将static视为允许代码编译的神奇关键字:)static fields,很有可能。你有“player”类的代码吗?我想知道为什么人们在不知道它的意思的情况下编写
static
。@Ingo:我的经验表明,他们一开始不将字段和方法设置为静态,然后试图从主方法使用它们,这会导致编译错误,然后发现他们可以将字段和方法设置为静态以解决编译错误,然后将static视为允许代码编译的神奇关键字:)