我正在开发一个包含 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/