在对象上调用 toString
Calling toString on objects
我有一个 class Game
有一个 toString
方法。
我想使用嵌套的 for 循环遍历数组,然后针对该数组指定索引中的每个 Tile
元素,打印出基于该 Tile
的特定字符串我在 Tile
class.
中编写的 toString
方法中的 s 属性
如果这是合适的逻辑,我该如何实现?我无法在两个 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 "";
}
您混淆了两个概念:在内存中创建字符串和打印。
您的 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();
}
}
我有一个 class Game
有一个 toString
方法。
我想使用嵌套的 for 循环遍历数组,然后针对该数组指定索引中的每个 Tile
元素,打印出基于该 Tile
的特定字符串我在 Tile
class.
toString
方法中的 s 属性
如果这是合适的逻辑,我该如何实现?我无法在两个 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 "";
}
您混淆了两个概念:在内存中创建字符串和打印。
您的 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();
}
}