私はクラスの1つに3つのクラスとオブジェクト配列を含むjavaプロジェクトを作成しています。このプロジェクトは最終的に、エンティティオブジェクトの座標を使用して4つのエンティティオブジェクトをボード上で移動させることになっています。これらのエンティティオブジェクトはワールドクラスの配列に格納されます。私の問題は、ワールドクラスの配列の初期化です。私はどのように配列の各要素をエンティティクラスのオブジェクトと等しく設定し、そのオブジェクトの座標にアクセスしてボード上でそれを動かすかはわかりません。エンティティオブジェクトの座標は、デフォルトではコンストラクタで20x30に設定されています。ここに私のコードです:Javaオブジェクト配列の初期化
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();
}
}
私の描画機能とメイン機能は終了していません。配列が初期化された後、エンティティget関数を使用して描画メソッドを終了することができます。 ご協力いただきありがとうございます。
クラス名にもUperCamelCaseを使用する必要があります。これは、サンプルコードで質問するとき、Javaコードの通常のスタイルであるため、質問するのが煩雑になりません。 (つまり 'MainClass'、' World'と 'Entity') – eckes
エンティティにデフォルトのコンストラクタである' Entity() 'を取り除きたいと思うでしょう。いつも欲しい。もう1つのコンストラクタはprivateです。これは、 'new Entity(0,0、" Entity1 "、 '1')'を別のクラスで使用したい場合には、間違った可視性があります。 – eckes
チップありがとう!ありがとう! – tfreiner