当我将所有变量都存储为int[][]
时,就会出现此问题。我有一个对象。每次单击按钮时,我都会创建一个具有自己变量的新对象。问题是我决定将所有int
变量存储在int[][]
中,现在我创建的每个对象都使用相同的int[][]
网格。所以我不确定我在这里做错了什么。
我尝试在对象构造函数中和构造函数外部启动数组int[][]
,即public static int[][] grid;
,然后在构造函数内启动它,或者我在构造函数中将其作为int[][] grid = new int[20][20]
启动。
有关为何发生这种情况的任何想法?在我有一个特定的String
变量来保存int
值之前,当我更改它时,所有要存储在int[][]
中的所有新对象都使用相同的网格。
答案 0 :(得分:3)
向我们提供您的代码会非常棒。拥有您正在谈论的代码时,帮助变得更加容易。但是你的解释中有一句话引起了我的注意:静态。
我尝试在对象构造函数中和构造函数外部启动数组int [] []。 public static int [] [] grid;然后在构造函数中启动它,或者我在构造函数中以int [] [] grid = new int [20] [20]启动它。
您写道:public static int[][] grid
这意味着你让你的领域变得静止。静态字段属于类,但不属于实例。所以你的所有实例共享同一个网格。即使你在结构化器中实例化它,也只有一个这样的网格。
如果您想要一个设计,每个实例都有自己的网格,只需删除static
关键字。