在循环中设置实例变量

时间:2015-07-22 15:24:12

标签: java loops instance-variables

我正在尝试用Java编写扫雷并创建了一个Box类,其中包含一个实例变量isMine,用于确定该框是否为我的。我使用setter来设置这个变量,虽然当我使用构造函数时存在问题。在我的main方法中,当我创建并填充包含Box的ArrayLists的ArrayList时,我还使用随机数生成器来设置isMine变量。我在用于填充ArrayLists的同一个循环中完成所有操作。

    ArrayList<ArrayList<Box>> boxList = new ArrayList<ArrayList<Box>>();
    for(int i=0; i<10; i++){
        boxList.add(new ArrayList<Box>());
    }
    for(int i=0; i<boxList.size(); i++){
        for(int j=0; j<10; j++){
            double rand = Math.random();
            boxList.get(i).add(new Box());
            boxList.get(i).get(j).drawBox(i,j);
            rand = Math.random();
            if(rand>.2){
                boxList.get(i).get(j).setMine(false);
            }
            else{
                boxList.get(i).get(j).setMine(true);
            }
        }
    }

然而,似乎每个Box的isMine实际上都设置为最后一个Box的isMine设置为。因此,如果boxList.get(9).get(9).getMine()为false,则它们将全部为假。

0 个答案:

没有答案