在2d数组中添加一个类? Java的

时间:2015-11-03 20:45:52

标签: java arrays random

我需要创建一个随机放置树木和食物的地图。对于地图,我希望创建一个二维数组,然后使用类将树和食物添加到数组中,这可能吗?



class Tree {
	char tsymbol;
}
class Food {
	char fsymbol;
	
}




这些类目前只需要在其中存储符号,这将是代表地图上对象的图标。



public void printWorld (){
	int a;
	int b;
	char[][] map = new char[15][12];

	for (a=1; a<=15; ++a)
	{
		for (b=1; b<=12; ++b)
		{
   			foodsymbol.fsymbol = 1;
   			final String[] items = { };
   			map[a][b] = 
				
			System.out.print(map[1][1]);
		}
		System.out.printf("\n\n");
	} 
}
&#13;
&#13;
&#13;

到目前为止,我有这个,忽略评论,因为那是我以前的工作。这部分是我试图随机添加对象到数组的地方,但是我在访问这个方法中的变量或类时遇到了问题。

提前感谢您的任何帮助:)

2 个答案:

答案 0 :(得分:2)

是的,您可以拥有一组对象并打印它们。要在同一个数组中使用不同类型的对象,它们都应该实现一个公共接口。例如:

interface MapObject {
    public char getSymbol();
}
class Tree implements MapObject {
    char tsymbol = 't';

    @override
    public char getSymbol() {
        return tsymbol;
    }
}
class Food implements MapObject {
    char fsymbol = 'f';

    @override
    public char getSymbol() {
        return fsymbol;
    }
}
class MyClass {
    public void printWorld() {
        MapObject[][] map = new MapObject[15][12];
        map[0][0] = new Tree();
        map[0][1] = new Food();
        System.out.print(map[0][0].getSymbol());
        System.out.print(map[0][1].getSymbol());
    }
}

答案 1 :(得分:1)

对于您的特定应用,您可能还需要考虑使用enum。如果所有树木都相同且所有食物都相同,这将非常有用。它可能看起来像这样:

enum Item {
    TREE ('t'),
    FOOD ('f');

    private final char symbol;
    Item(char symbol) {
        this.symbol = symbol;
    }
    char getSymbol() { return symbol; }
}
class MyClass {
    public void printWorld() {
        Item[][] map = new Item[15][12];
        map[0][0] = Item.TREE;
        map[0][1] = Item.FOOD;
        System.out.print(map[0][0].getSymbol());
        System.out.print(map[0][1].getSymbol());
    }
}