我正在尝试创建一个包含几个不同内容的数组,这样我就可以在命令行中显示一种迷宫。我试图使用'*'
作为墙,' '
作为空格,但我还想添加对不同对象的引用,例如成堆的金币和由字符表示的小陷阱喜欢' g'对于黄金,并且' t'陷阱
迷宫中的所有对象都将成为MazeObject类的子类。所以我的问题是我是否用数组制作数组,以及如何将对象实例放入数组中,或者我应该将其设置为MazeObject数组,但是如何将'*'
作为墙包含,并{{{ 1}}作为空格。或者是否有某种方法可以使用MazeObject数组的字符?
' '
或
MazeObject maze[][] = new MazeObject[rows][columns]
还是多态?
char maze[][] = new char[rows][columns]
答案 0 :(得分:1)
我会像下面的代码一样定义MazeObject。请注意,char representation
实际上只是对象的名称或字符表示。然后Object actualObj
将是您在迷宫中想要的物理对象。
public class MazeObject
{
private char representation;
private Object actualObj;
public MazeObject(char r)
{
representation = r;
}
public char getRepresentation()
{
return representation;
}
}
然后你可以通过这样做列出一个列表:
int row = 5;
int col = 5;
MazeObject [][] list = new MazeObject [row] [col];
如何填充二维数组?
Answer,但这个答案仍然适用于整数。您正在使用MazeObjects
,请记住这一点。
MazeObject [][] list = new MazeObject [5] [5];
list[0][0] = new MazeObject('a');
System.out.println(list[0][0].getRepresentation());
祝其他人好运,现在您拥有填充二维阵列所需的所有工具。