Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays_Duplicates - Fatal编程技术网

Java “数组对象”;“复制”;

Java “数组对象”;“复制”;,java,arrays,duplicates,Java,Arrays,Duplicates,我正在用java创建一个游戏。我正在使用一系列装甲装备 问题是,每当我更改数组中的1个变量时,其他对象也会受到影响。这看起来像是指针问题,但所有对象都已初始化为单独的,并称为新对象 private Armor[] equip = new Armor[3]; public Inventory() { for(int i = 0; i<3;i++) equip[i] = new Armor(); equip[0] = new Armor("head","You

我正在用java创建一个游戏。我正在使用一系列装甲装备 问题是,每当我更改数组中的1个变量时,其他对象也会受到影响。这看起来像是指针问题,但所有对象都已初始化为单独的,并称为新对象

private Armor[] equip = new Armor[3];
public Inventory()
{
    for(int i = 0; i<3;i++)
        equip[i] = new Armor();

    equip[0] = new Armor("head","You don't have head equipment","head",0,10,0,0);
    equip[1] = new Armor("tunic","A simple farmers tunic","chest",0,10,0,0);
    equip[2] = new Armor("baggy pants","Basic pants woven from rough cloth","legs",0,10,0,0);


    System.out.println(armorDes(0));
    System.out.println(armorDes(1));
    System.out.println(armorDes(2));
}
而不是他们自己的数据

这是用调试器测试的,所有对象都声明到数据中的不同位置。这是java问题吗?我是不是很愚蠢

上述代码不清楚

private Armor[] equip = new Armor[3];
public Inventory()
{
for(int i = 0; i<3;i++)
    equip[i] = new Armor();// Why creating object using default constructor here? no use

equip[0] = new Armor("head","You don't have head equipment","head",0,10,0,0);
equip[1] = new Armor("tunic","A simple farmers tunic","chest",0,10,0,0);
equip[2] = new Armor("baggy pants","Basic pants woven from rough cloth","legs",0,10,0,0);

// Use toString() method in Armour class to see the values present in variables. 
//Also be sure all variables are instance variables 

System.out.println(equip[0]);
System.out.println(equip[1]);
System.out.println(equip[2]);

//System.out.println(armorDes(0));
//System.out.println(armorDes(1));
//System.out.println(armorDes(2));
私人装甲[]装备=新装甲[3];
公共库存()
{

对于(int i=0;i)您可能已经声明了
Armor
static
或其他内容的所有字段,但是只有这些代码可以查看,我们无法真正知道发生了什么。Welp看起来我很笨,然后:D错误解决了
private Armor[] equip = new Armor[3];
public Inventory()
{
for(int i = 0; i<3;i++)
    equip[i] = new Armor();// Why creating object using default constructor here? no use

equip[0] = new Armor("head","You don't have head equipment","head",0,10,0,0);
equip[1] = new Armor("tunic","A simple farmers tunic","chest",0,10,0,0);
equip[2] = new Armor("baggy pants","Basic pants woven from rough cloth","legs",0,10,0,0);

// Use toString() method in Armour class to see the values present in variables. 
//Also be sure all variables are instance variables 

System.out.println(equip[0]);
System.out.println(equip[1]);
System.out.println(equip[2]);

//System.out.println(armorDes(0));
//System.out.println(armorDes(1));
//System.out.println(armorDes(2));