TestLabo.java



/** 象を飼育する実験のクラス */

package zoo;

public class TestLabo implements Environment {

  /** 飼育の対象の象 */
    protected Elephant elephant;

  /** コンストラクタ */
    public TestLabo() {
        elephant = new Elephant( "花子" );
    }

  /** 食料の情報を返すメソッドの実装 */
    public Food[] getFoods() {
        Banana[] bananaArray = {
          new Banana(), new Banana(), new Banana(),
          new Banana(), new Banana() };
        return bananaArray;
    }

  /** 日数を返すメソッドの実装 */
    public int getDays() {
        return 1;
    }

  /** 象の状態を標準出力に表示するメソッド */
    public void print() {
        String name = elephant.getName();
        int age = elephant.getAge();
        int weight = elephant.getWeight();
        System.out.println(
            "象の" + name + "は" + "生後" + age +
            "日、体重は" + weight + "kgです。" );
    }

  /** 処理の開始のメソッド */
    public static void main( String argv[] ) {
        try {
            TestLabo test = new TestLabo();
            while( test.elephant.isAlive() ) {
                test.elephant.step( test );
                test.print();
                Thread.sleep( 1000 );
            }
        }
        catch( Exception e ) {
            System.err.println( e.getMessage() );
            System.exit(-1);
        }
    }
}