我正在玩有些日子的处理,但我遇到了一个我不理解的错误。我用适当的参数声明了类和构造函数,也许你可以帮助我。这是代码:
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)未定义。 提前谢谢。
答案 0 :(得分: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;
}
}