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

为什么我的对象在java中使用相同的变量?

为什么我的对象在java中使用相同的变量?,java,arrays,Java,Arrays,当我将所有变量更改为存储在int[][]中时,出现了这个问题。我有一个目标。每次单击一个按钮,我都会创建一个具有自己变量的新对象。问题是我决定将所有int变量存储在int[][]中,现在我创建的每个对象都使用相同的int[][]网格。所以我不确定我到底做错了什么 我尝试在对象构造函数内部和构造函数外部启动数组int[][],即public static int[][]网格然后在构造函数中启动它,或者我已经在构造函数中启动它作为int[][]grid=new int[20][20] 你知道为什么会

当我将所有变量更改为存储在
int[][]
中时,出现了这个问题。我有一个目标。每次单击一个按钮,我都会创建一个具有自己变量的新对象。问题是我决定将所有
int
变量存储在
int[][]
中,现在我创建的每个对象都使用相同的
int[][]
网格。所以我不确定我到底做错了什么

我尝试在对象构造函数内部和构造函数外部启动数组
int[][]
,即
public static int[][]网格
然后在构造函数中启动它,或者我已经在构造函数中启动它作为
int[][]grid=new int[20][20]


你知道为什么会这样吗?以前,我有一个特定的
字符串
变量来保存
int
值,但当我更改它时,所有内容都存储在
int[][]
中,我创建的所有新对象都使用相同的网格

向我们提供您的代码会非常好。有了你所说的代码,帮助就容易多了。但在你的解释中有一个词引起了我的注意:静态

我已经尝试在对象构造函数内部和构造函数外部启动数组int[][],即公共静态int[][]网格;然后在构造函数中启动它,或者我在构造函数中启动它,作为int[][]grid=new int[20][20]

您编写了:
publicstaticint[]grid

这意味着您将字段设置为静态。静态字段属于类,但不属于实例。因此,所有实例共享同一个网格。即使您在constructor中实例化它,也只有一个这样的网格


如果您想要一个设计,每个实例都有自己的网格,只需删除
static
关键字。

为我们提供您的代码将非常棒。有了你所说的代码,帮助就容易多了。但在你的解释中有一个词引起了我的注意:静态

我已经尝试在对象构造函数内部和构造函数外部启动数组int[][],即公共静态int[][]网格;然后在构造函数中启动它,或者我在构造函数中启动它,作为int[][]grid=new int[20][20]

您编写了:
publicstaticint[]grid

这意味着您将字段设置为静态。静态字段属于类,但不属于实例。因此,所有实例共享同一个网格。即使您在constructor中实例化它,也只有一个这样的网格


如果您想要一个设计,每个实例都有自己的网格,只需删除
static
关键字。

为我们提供您的代码将非常棒。有了你所说的代码,帮助就容易多了。但在你的解释中有一个词引起了我的注意:静态

我已经尝试在对象构造函数内部和构造函数外部启动数组int[][],即公共静态int[][]网格;然后在构造函数中启动它,或者我在构造函数中启动它,作为int[][]grid=new int[20][20]

您编写了:
publicstaticint[]grid

这意味着您将字段设置为静态。静态字段属于类,但不属于实例。因此,所有实例共享同一个网格。即使您在constructor中实例化它,也只有一个这样的网格


如果您想要一个设计,每个实例都有自己的网格,只需删除
static
关键字。

为我们提供您的代码将非常棒。有了你所说的代码,帮助就容易多了。但在你的解释中有一个词引起了我的注意:静态

我已经尝试在对象构造函数内部和构造函数外部启动数组int[][],即公共静态int[][]网格;然后在构造函数中启动它,或者我在构造函数中启动它,作为int[][]grid=new int[20][20]

您编写了:
publicstaticint[]grid

这意味着您将字段设置为静态。静态字段属于类,但不属于实例。因此,所有实例共享同一个网格。即使您在constructor中实例化它,也只有一个这样的网格


如果您想要一个每个实例都有自己网格的设计,只需删除
static
关键字。

顺便问一下,这是
int[][]
字段
static
?如果是,那么这就是问题的根源。你能为你的类定义提供相关的代码吗?看这里:你能发布一点代码吗?正如@luigimendoza所说的,如果是静态的,那就是问题所在。是的,我的字段是静态的。另外,我不能在这里发布我以前尝试过的代码,但它说我做得不对,所以我放弃了。我会尝试删除静态插入,然后再联系你们。谢谢。顺便问一下,这是
int[][]
字段
static
?如果是,那么这就是问题的根源。你能为你的类定义提供相关的代码吗?看这里:你能发布一点代码吗?正如@luigimendoza所说的,如果是静态的,那就是问题所在。是的,我的字段是静态的。另外,我不能在这里发布我以前尝试过的代码,但它说我做得不对,所以我放弃了。我会尝试删除静态插入,然后再联系你们。谢谢。顺便问一下,这是
int[][]
字段
static
?如果是,那么这就是问题的根源。你能为你的类定义提供相关的代码吗?看这里:你能发布一点代码吗?正如@luigimendoza所说的,如果是静态的,那就是问题所在。是的,我的字段是静态的。另外,我不能在这里发布我以前尝试过的代码,但它说我做得不对,所以我放弃了。我会试着把它去掉