私はゲームのようなプログラムを書いています。クラスとしてはアイテムとして動作する必要があります。通常はアイテムとして保管しておきますが、それが意味することをやり遂げるためにはゲームの10日間を待たなければなりません。一度にすべてのクラスの日を更新する方法はありますか?私は静的メソッドを使用しようとしましたが、インスタンス変数を使用できないため、動作しませんでした。私は新しいインスタンスが作成されるたびに展開するコードを作成する可能性について考えましたが、私はそれについて理解できるものは何も見つかりません。メソッドに追加する方法はありますか?これをアイテムにしますか?これは私が現時点で持っているものです:Javaで一度にクラスの複数のインスタンスを更新するには
public class Tree
{
private boolean fullGrown;
private int day;
private int APDay; //apples per day
private static int totalApples;
public Tree()
{
fullGrown = false;
day = 0;
APDay = (int) (Math.random()*2) + 4;
}
public void updateDay()
{
day = day + 1;
if (day == 10) fullGrown = true;
if (fullGrown == true) totalApples = totalApples + APDay;
}
public void skipGrowth()
{
fullGrown = true;
}
}
これは機能しますが、すべてのインスタンスを別々に更新する必要があります。私はすべてのインスタンスを同時に更新する方法が必要です。また、実際のインターフェースではなく、コードによって使用されます。
リストを使用して、インスタンスをループします。 [何を試しましたか](http://whathaveyoutried.com)? – ManoDestra
おそらくObserverパターンを実装できますか?あなたのクラスにあなたのモデルを "聞いてください"(すなわち:日)。 "days"が更新されると、モデル(observable)はすべてのview-item(オブザーバ)https://en.wikipedia.org/wiki/Observer_pattern – alexbt
を正しく理解していればそれを認識します。これがゲームロジックの場合、すべてのプレイヤーが同時にアイテムを獲得しない限り、すべてのプレイヤーに1つの変数を使用することは不適切です。遅くに参加した人、例えば6日目の人は、最初の10日間は4日間待つだけです。 – WSimpson