使用布尔数组为类创建新实例

时间:2013-04-18 14:05:53

标签: java boolean instance

我正在编写一个代码,根据原始颜色,将数组单元格的颜色更改为黑色或白色。如果单元格为白色,则变为黑色,反之亦然。我正在使用以下代码:

public class Grid {

    boolean[][] grid;
    private int Height;
    private int Width;
    public White;
    public Black;


    public Grid(int height, int width) {

        Height = height;
        Width = width;

    }

    public int getHeight() {

        return Height;
    }

    public int getWidth() {

        return Width;
    }

    public boolean isWhite(int i, int j) {
        boolean [][] Grid = new boolean [Height][Width];
        for ( i = 0; i<Height ; i++);{
            for (j = 0; j<Width ; j++){
                if (Grid[i][j] ?? //iswhite) {
                    ??//setBlack
                }
                else (??)//setWhite

            }
        }

    }}

    protected void setWhite(int i, int j) {
        ??
    }

    protected void setBlack(int i, int j) {
        ??
    }
}

我相信我应该根据布尔值为Grid [i] [j]创建一个实例但是我不确定如何将'public boolean isWhite'与'setWhite'和'setBlack'实际关联起来。我应该怎么做呢?

2 个答案:

答案 0 :(得分:0)

1)您应该在构造函数中初始化数组。由于它是一个基元数组,因此在每个位置都默认为false。如果这不是您想要的,请根据需要设置为true。

2)isWhite,从名称来看,应该只返回给定指数的值。

3)对于set方法,假设false == black,只需将适当位置的值设置为true或false,具体取决于您是想要白色还是黑色。

答案 1 :(得分:0)

您已将boolean grid[][]定义为类变量。您需要在构造函数中使用grid = new boolean[height][width];的内容进行设置。我建议初始化所有值,只是为了理智。 (即将它们全部设置为true或false或某些预定义模式。) 完成后,您可以检查grid[i][j]的值,该值为true或false。 (无论你希望代表哪种黑白色。)

例如,你的isWhite函数就这么简单(假设white == true)

public boolean isWhite(int i, int j) {
        return grid[i][j];
}

同样,set函数也相对最小:

void setWhite(int i, int j) {
    grid[i][j] = true;
}

void setBlack(int i, int j) {
    grid[i][j] = false;
}

其他: 您可能希望创建一些代码,在翻转颜色时执行相应的操作,而不是将其放在isWhite函数中。 (它应该测试颜色,而不是改变值,对吗?)

void changeColorAtYX(int y, int x){
    if(isWhite(y, x)){
        setBlack(y, x);
    } else {
        setWhite(y,x);
    }
}