0

我从几天开始就在玩处理,但我遇到了一个我不明白的错误。我用正确的参数声明了类和构造函数,也许你可以帮助我。这是代码:

Cell[][] grid;
int rnc = 5;
int side = 5;
void setup(){
  size(rnc*side,rnc*side);
  grid = new Cell[rnc][rnc];
  for(int i = 0; i < rnc; i++){
    for(int j = 0; j < rnc; j++){
      grid[i][j] = new Cell(i,j);
      rect(grid[i][j].row*side,grid[i][j].column*side,side,side);
    }
  }
}
void draw(){}
class Cell
{
  boolean isChecked;
  int row,column;
  int side;
  void Cell(int trow, int tcolumn){
    row=trow;
    column=tcolumn;
}
  void toggleCheck(){
    if(isChecked == true){
      isChecked = false;
    }else{
      isChecked = true;
    }
  }
}

我尝试运行程序后得到的错误是:构造函数sketch.Cell(int,int)未定义。先感谢您。

4

1 回答 1

0

我假设这是 Java,尽管您没有指定语言。如果是这样,这就是问题所在:

void Cell(int trow, int tcolumn){
    row=trow;
    column=tcolumn;
}

那不是构造函数。这是一个名为 的方法Cell,具有void返回类型。你的意思是:

Cell(int trow, int tcolumn){
    row=trow;
    column=tcolumn;
}

(或者可能public Cell(...)。)

那个时候,你应该没事。请注意,这将是编译时错误 - 而不是执行时错误。在编译之前不要尝试运行您的代码。

此外,尚不清楚您为什么要设置构造函数参数trow,以及tcolumn-t目的是什么?我还将您的变量设为私有,final如果可能的话,并简化您的toggleCheck方法。例如:

public final class Cell {

    private final int row, column;
    private boolean checked;
    // It's not clear what side was for

    public Cell(int row, int column) {
        this.row = row;
        this.column = column;
    }

    public void toggleChecked() {
        checked = !checked;
    }

    public boolean isChecked() {
        return checked;
    }
}
于 2013-05-11T14:08:06.343 回答