2017-05-03 9 views
-1

私は自分のクラスのシミュレーションを作成していますが、何か問題があります。ここでいくつかの方向性+任意のヒントを探しています。配列内に格納されたオブジェクトのインスタンスに対して非静的メソッドにアクセスするにはどうすればよいですか?

私はこれまで2つのクラスを持っていましたが、私は他のものを実装しようとしています。現時点では、他のクラスに格納されている配列内のオブジェクトのポイント(x座標とy座標)にアクセスできるようにしたいと考えています。

+1

あなたは 'ecosystem [i] [j] .method();'を意味しますか? – Li357

+0

種類: Ecosystemのinitialize()で作成されたCarnivoresのインスタンスに対してgetCarnivoreColumn()を呼び出したいと思います。 – mmuso

+0

私はすでにどのようにあなたに言った... – Li357

答えて

-1

これは動作するはずです。これらの動物の種類は生態系ではないので

if (ecosystem[i][j] instanceof Carnivore) { 
    Carnivore.printCarnivore(); 
    System.out.print(" | "); 
    int x = (Carnivore) ecosystem[i][j].getCarnivoreRow(); 
    int y = (Carnivore) ecosystem[i][j].getCarnivoreColumn(); 
    System.out.println("Coordinates: (" + x + ", " + y + ")") 
} 
0
  1. あなたは、生態系の配列でこれらの動物の種類ごとの新しいインスタンスを格納することはできません。そのためには、他のクラスをエコシステムに拡張する必要があります。
  2. 私は、Ecosystemをインターフェイスにして他のクラスから実装することをお勧めします。インターフェイス内でgetRow()getColumn()を定義し、サブクラスでオーバーライドすると、各配列要素がその要素にアクセスして特定の実装を返すことができます。
  3. Doing public static void printCarnivore()は間違っています。静的メソッドを内部クラスに持つことはできません。
関連する問題