【发布时间】:2014-03-23 06:43:10
【问题描述】:
我有两个不同的二维数组,用于以如下形式存储地图:
[#, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #]
[#, ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., #]
[#, ., ., ., ., ., ., G, ., ., ., ., ., ., ., ., E, ., #]
[#, ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., #]
[#, ., ., E, ., ., ., ., ., ., ., ., ., ., ., ., ., ., #]
[#, ., ., ., ., ., ., ., ., ., ., G, ., ., ., ., ., ., #]
[#, ., ., ., ., ., ., ., ., ., ., ., ., ., P, ., ., ., #]
[#, ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., #]
[#, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #]
我已将此分配给变量 mapArrayGlobal,但是当我调用方法 createBlankArray() 时,它似乎会更改此变量。我的类的完整代码如下:
static int Column, Row, goldNumber;
int goldCount = 0;
char [][] mapArrayGlobal, mapBlank;
boolean goldMarker = false;
boolean exitSet = false;
public void setPosition(int rows, int column, char [][] TwoDArray, int goldValue){
goldNumber = goldValue;
Column = randInt(1, column - 1);
Row = randInt(1, rows - 2);
mapArrayGlobal = TwoDArray;
mapBlank = mapArrayGlobal;
if(mapArrayGlobal[Row][Column] == '#'){
setPosition(rows, column, TwoDArray, goldValue);
}
else if(mapArrayGlobal[Row][Column] == 'G'){
goldMarker = true;
mapArrayGlobal[Row][Column] = 'P';
}
else{
mapArrayGlobal[Row][Column] = 'P';
}
createBlankArray(TwoDArray);
}
public void createBlankArray(char [][] array){
printArray(array);
for(int i = 1; i < array.length - 1; i++){
for(int j = 1; j < array[0].length - 1; j++){
mapBlank[i][j] = '?';
}
}
printArray(mapBlank);
printArray(mapArrayGlobal);
}
public static int randInt(int min, int max) {
Random rand = new Random();
int randomNum = rand.nextInt((max - min) + 1) + min;
return randomNum;
}
在这段代码的最后,mapArrayGlobal 和 mapBlank 的值都是:
[#, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #]
[#, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, #]
[#, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, #]
[#, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, #]
[#, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, #]
[#, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, #]
[#, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, #]
[#, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, #]
[#, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #]
谁能告诉我这是为什么。
非常感谢:)
【问题讨论】:
标签: java class object multidimensional-array global-variables