我正在创建一个 5x5 板,在不同位置存储各种字符,以表示它是空的,显示“-”,并根据字符显示另一个符号 %,& 等。
我能够将字符分配到该位置,但是当需要显示棋盘时,会使用 getSymbol()
根据需要打印出 toString() 方法。 > 方法。
角色存储在 characters
数组中,棋盘保存在 2D 数组multD
中。
Character
是父类,子类有Dog
、cat
等。
主要方法
Object [][] multD = new Object[5][5];
ArrayList<Character> characters = new ArrayList<Character>();
Character dog1 = new Dog();
dog1.setPosition(2, 2);
multD[dog1.getX()][dog1.getY()] = dog1;
for (int i = 0; i < 5; i++){
for (int j = 0; j < 5; j++){
if (multD[i][j] == null){
multD[i][j] = '-';
}else {
multD[i][j]=("@@"); //test
//multD[i][j] = multD[i][j].getSymbol();<- something I assumed like this but I don't know the code
}
}
}
for(int i=0; i<5; i++) {
for(int j=0; j<5; j++)
System.out.print(multD[i][j]+" ");
System.out.println();
}
Dog子类(将添加更多属性)
public class Dog extends Character{
private int x, y;
public Dog(){
setType("Dog");
setSymbol('%');
}
@Override
public int getX(){
return x;
}
@Override
public int getY(){
return y;
}
@Override
public void setPosition(int x, int y){
this.x = x;
this.y = y;
}
}
Character
父类中的 toString 方法
public String toString() {
String st = "Entity Properties \n";
st = st + " TYPE: " + getType() ;
return st;
}
既然 Dog 存储在 [2][2] 中,我如何只打印该字符的符号?最终角色会移动。
感谢任何帮助或建议!
最佳答案
这一行:
对象[][] multD = new Object[5][5];
需要修改为
字符[][] multD = 新字符[5][5];
如果您想在 multD
上调用 getSymbol()
。
关于java - 为什么通过二维数组打印时显示整个对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29655252/