如何使用内置变量创建Java类

时间:2013-12-16 16:41:11

标签: java class

我不知道如何很好地说出标题,但这是我的问题: 我正在用Java制作一个迷宫游戏,我想创建一个类,这样我就可以轻松设置块:

addBlock(32, 32)

第一个和第二个数字是应该放置块的x和y坐标。 我是Java的初学者,来自Python。

2 个答案:

答案 0 :(得分:2)

你可以像这样创建一个基本的pojo:

    public class Block {
        private int x;
        private int y;

        public Block(int x, int y) {
            this.x = x;
            this.y = y;
        }

        public int getX() {
            return x;
        }

        public int getY() {
            return y;
        }

    }

然后,您可以创建一个Maze类,例如:

    public class Maze {

        public void addBlock(Block block) {
            // your logic here
        }

    }

用于存储Block对象的数据结构取决于具体情况。我建议HashMap根据坐标(如果形状不规则)或数组/ String使用List键。

HashMap版本:

private Map<String, Block> blocks; // ...

public void addBlock(Block block) {
    blocks.put(block.getX()+","+block.getY(), block);
}

数组版本:

private Block[][] blocks; // ...

public void addBlock(Block block) {
    blocks[block.getX()][block.getY()] = block;
}

您可以看到HashMap版本的优势在于它是动态的。您必须使用默认值初始化数组。

答案 1 :(得分:0)

您可能想要一些高度封装的解决方案吗?

public class Maze {
    private class Block {
        private int x;
        private int y;

        public Block(int x, int y) {
            this.x = x;
            this.y = y;
        }
    }
    private List<Block> blocks = new ArrayList<Block>();

    public Maze addBlock(int x, int y) {
        this.blocks.add(new Block(x, y));
        return this;
    }
}