Planetクラスでブール・メソッドを試して、ヌル・ギャップを閉じるために名前とシフト値で配列を削除する際に問題があります。誰か助けてくれますか?以下は、月と地球のための私のクラスである...配列を名前で削除してヌル・ギャップを閉じるコード
MOON CLASS: -
public class Moon
{
private float angle=0.01;
// add class member variables here
private String name;
private float radius;
private float distance;
private float speed;
private int orbitalPeriod;
// add constructor here
public Moon(String name, float radius, float distance, float speed, int orbitalPeriod)
{
this.name=name;
this.radius=radius;
this.distance=distance;
this.speed=speed;
this.orbitalPeriod=orbitalPeriod;
}
// add other methods here
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public float getRadius()
{
return radius;
}
public float getDistance()
{
return distance;
}
public float getSpeed()
{
return speed;
}
public float getAngle()
{
return angle;
}
public int getOrbitalPeriod()
{
return orbitalPeriod;
}
public void setOrbitalPeriod(int orbitalPeriod)
{
this.orbitalPeriod = orbitalPeriod;
}
public String toString()
{
return "Moon:"+name+" - (orbit= "+orbitalPeriod+")";
}
// This will display the moon when other code is completed.
public void display()
{
angle=angle+(0.01*speed);
pushMatrix();
rotate(angle);
translate(distance, 0);
fill(149, 149, 149);
ellipse(0, 0, radius*2, radius*2);
popMatrix();
}
}
PLANETのCLASS: - 衛星の数が非常に頻繁に変更することができますように
public class Planet
{
private float angle=0.01;
// add class member variables here
private float radius, distance, speed;
private String name;
private Moon [] moons = new Moon [5];
private int numOfMoons = 0;
// add constructor here
public Planet(String name, float radius, float distance, float speed)
{
this.name=name;
this.radius=radius;
this.distance=distance;
this.speed=speed;
}
// add other methods here
public String getName()
{
return name;
}
public float getRadius()
{
return radius;
}
public void setRadius(float radius)
{
this.radius = radius;
}
public float getDistance()
{
return distance;
}
public float getSpeed()
{
return speed;
}
public Moon[] getMoons()
{
return moons;
}
public String toString()
{
return "Planet:"+name+" (r= "+radius+ "d= "+distance+") has "+moons.length+" moon(s)";
}
public void printMoons()
{
for (Moon moon : getMoons())
println(moon);
}
public void addMoon(Moon moon)
{
moons[numOfMoons] = moon;
++numOfMoons;
}
public boolean removeMoonByName(String moonName)
{
for (Moon moon : getMoons())
if(moon!=null)
moon.removeMoonByName();
}
// This will display the moon when other code is completed. You don't need to understand this code.
public void display()
{
angle=angle+(0.01*speed);
pushMatrix();
rotate(angle);
translate(distance, 0);
fill(255, 255, 255);
ellipse(0, 0, radius*2, radius*2);
for (Moon moon : getMoons())
if(moon!=null)
moon.display();
popMatrix();
}
}
moon.removeMoonByName();を呼び出す際に何をしようとしましたか?あなたはMoonクラスにその名前のメソッドを渡しませんでした。また、:あなたは要件として配列を使用する必要がありますか? ArrayListを使用すると、作業がはるかに簡単になり、その「閉鎖間隙」全体を心配する必要はありません。 –
ここを見てください - > https://stackoverflow.com/questions/642897/removing-an-element-from-an-array-java#644719 – najjarammar
@ 911DidBushこれは、そのメソッドを動作させようとする私の試みでした。 Arrayの配列を検索して月の名前を探し、特定の月を削除して、プロセスのヌルギャップをクローズしたい。そして、はい、私は配列を使用する必要があります。 –