Java 贴图对象保存点(int x,int y)和颜色

Java 贴图对象保存点(int x,int y)和颜色,java,object,Java,Object,我正在尝试创建一个“映射”对象 这个“映射”对象应该包含“点”int x,int y对象,并且每个点都有一个颜色,由一个字符和一个字母表示 这是一个 我不能在“点”中添加字段。我不能使用通用对象 我正在考虑如何应用这个“映射”对象: 我想也许它必须要: private Point[] MapPoints; private char[] PointsColors; Point[]MapPoints数组将保存这些点。 char[]points颜色将分别保存颜色 我没有想清楚,但我觉

我正在尝试创建一个“映射”对象

这个“映射”对象应该包含“点”int x,int y对象,并且每个点都有一个颜色,由一个字符和一个字母表示

这是一个

我不能在“点”中添加字段。我不能使用通用对象

我正在考虑如何应用这个“映射”对象: 我想也许它必须要:

    private Point[] MapPoints;
    private char[] PointsColors;
Point[]MapPoints数组将保存这些点。 char[]points颜色将分别保存颜色

我没有想清楚,但我觉得这有点笨拙,在以后的代码中可能对我来说很困难


我在面向对象编程的一个非常基础的层次上,所以当你提供一个解决方案时,请考虑它——它应该是基本的,并且局限于我们在课堂上学到的东西。

如果你设计一个像char [2]这样的2D数组[]点颜色,你就不再需要一个点类了…然后您可以浏览/迭代行和列以查找/设置地图中的颜色,这种方法有两个积极的方面

您不需要为此创建类点

只需知道颜色所在的坐标,即可直接设置/获取颜色

例如:

char[][] pointsColors = new char[2][2];
// set color at 0,0 to red
pointsColors[0][0] = 'r';
// set color at 1,1 to green
pointsColors[1][1] = 'g';
// get color at 0,1
char foo = pointsColors[0][1];

您可以使用HashMap集合,其中,您可以使用point对象作为键,使用表示点颜色的char值作为其值。通过这种方式,您可以跟踪与对象相关的颜色。

让我们避免使用泛型类,并计划我们的应用程序。从要求来看,很明显,除了x和y之外,我们不允许向点添加字段,点必须有x和y。所以颜色不能是重点的一部分。包含字符项以表示点的2D数组也不是一个选项,因为根据给定的值,我们将无法对坐标进行反向工程,并且明确说明点将具有x和y字段。这意味着我们有一个Point类:

因为贴图必须是一个包含点的对象,所以让我们定义它的类:


如果您设计一个像char[][]mapColor这样的二维数组,您就不再需要点类了。。。。。然后您可以浏览/迭代行和列以查找/设置地图中的颜色。谢谢。我不确定我是否理解。我的地图应该包含X点,Y点和每个X点,Y点的颜色。我不能在同一个数组中保存'int'和'char'。你根本不需要存储x和y,将该点的颜色存储在mapColor[x][y]中,如果你想访问它,你可以直接访问它。不。。。您的地图是一个2d数组,只保存颜色信息……那么“地图”对象字段是什么char[][]仅映射?谢谢,但我不允许使用HashMaps,因为我们还没有学习它。非常感谢!非常有帮助@枕头旅行不客气。如果这个答案解决了你的问题,你可以考虑接受它。
public class Point {
    public int x;
    public int y;

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
}
public class Map {
    public Point[][] points;
    public char[][] colors;

    public getColorOfPoint(Point point) {
        return colors[point.x, point.y];
    }

    public Map(Point[][] points, char[][] colors) {
        this.points = points;
        this.colors = colors;
    }
}