我的课程Game
有toString
方法。
我想使用嵌套的for循环遍历数组,然后对于此数组的指定索引中的每个Tile
元素,根据Tile
&#39打印出特定的字符串;我在toString
类中编写的Tile
方法内的属性。
如果这是适当的逻辑,我该如何实现?我无法在两个toString
方法之间正确匹配参数。
public String toString(tileArr){
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
tileArr[i][j].toString(t);
}
System.out.print("\n");
}
return "";
}
答案 0 :(得分:3)
您正在混淆两个概念:在内存中创建字符串以及打印。
你的toString()方法不应该调用System.out.println()
。相反,它应该只是创建一个字符串,可以由一些调用者打印。
此外,如果您尝试提供传统的toString()
方法,则不会采取任何参数。由于它是一个实例方法,因此它可以访问对象的字段。
public class Game {
private int rows, columns;
private int tileArr[][];
...
public String toString(){
StringBuilder builder = new StringBuilder();
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
builder.append( tileArr[i][j].toString() );
builder.append(" "); // If tiles need to be separated.
}
builder.append("\n");
}
return builder.toString();
}
}