Java对象数组初始化

标签 java arrays class object

我正在开发一个包含 3 个类和其中一个类中的对象数组的 java 项目。该项目最终应该使用实体对象的坐标在板上移动 4 个实体对象。这些实体对象存储在世界类中的一个数组中。我的问题是世界级的数组初始化。我不确定如何将数组的每个元素设置为等于实体类中的对象,然后访问该对象的坐标以在板上移动它。实体对象的坐标最初在默认构造函数中设置为 20x30。这是我的代码:

public class entity {

    private int xcoordinate;
    private int ycoordinate;
    private String name;
    private char symbol;

    public entity(){
        xcoordinate = 20;
        ycoordinate = 30;
    }

    private entity(int newxcoor, int newycoor, String newname, char newsymbol){
        xcoordinate = newxcoor;
        ycoordinate = newycoor;
        name = newname;
        symbol = newsymbol;
    }

    public int getXCoor(){
        return xcoordinate;
    }

    public int getYCoor(){
        return ycoordinate;
    }

}

public class world {

    private entity[] ObArray = new entity[4];

    public world(){
        world test = new world();
    }

    public void draw(){
        for (int i = 0; i < 4; i++)
        {
            //int x = ObArray[i].getXLoc();
            //int y = ObArray[i].getYLoc();
        }
    }

}

public class mainclass {

    public static void main(String[] args){
        world worldob = new world();
        //entity a = new entity();
        //entity b = new entity();
        //entity c = new entity();
        //entity d = new entity();
        worldob.draw();
    }

}

我的 draw 函数和 main 函数还没有完成。数组初始化后,我将能够使用实体获取函数完成绘制方法。 感谢您的帮助。

最佳答案

这是一种方法。您还可以像这样内联定义所有实体:

private entity[] ObArray = {
    new entity(0,0,"Entity1",'a'),
    new entity(10,10,"Entity2",'b'),
    new entity(20,20,"Entity3",'c'),
    new entity(30,30,"Entity4",'d')
};

更好的方法可能是使用 ArrayList 而不是数组:

private List<entity> ObArray = new ArrayList<>();

ObArray.add(new entity(0,0,"Entity1",'a');
ObArray.add(new entity(10,10,"Entity2",'b');
ObArray.add(new entity(20,20,"Entity3",'c');
ObArray.add(new entity(30,30,"Entity4",'d');

要访问每个元素,您只需从数组中获取元素并获取或设置您需要的属性:

ObArray[0].getXCoor();
ObArray[0].setXCoor(5);

关于Java对象数组初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36295891/

相关文章:

java - 如何将结果保存到Excel文件或csv文件?

java - 类型的未定义方法

php - 在循环中获取数组的实际值

Jquery在包含html字符串的变量中添加类

C++:空类对象的大小是多少?

JavaScript ES2015 : Instanciate a class and use variables from class

java - 如何授予 Java Web 应用程序对 Digital Ocean Droplet 的访问权限

java - 缺少要求 osgi.wiring.package=org.osgi.framework)(version>=1.8.0)(!(version>=2.0.0)))

Javascript:如何根据即将到来的索引值递归分组数组

php - 将 mysql 查询结果附加到变量