Newer
Older
JavaDesignPattern / src / Actor.java
public class Actor {
    String name = "";

    public void showName() {
        System.out.println(name);
    }

    void getItem(Item item) {
        System.out.println(name + " は " + item.toString() + " を受け取った。");
    }

    @Override
    public String toString() {
        return name;
    }

    boolean isOld = false; // 年をとるとtrueに設定

    // isOldがtrueなら年をとる
    void checkOld() {
        if (this.isOld) {
            System.out.println(name + " は老人になってしまった。");
        }
    }
}

class Urashima extends Actor {
    Tamatebako tamatebako;

    Urashima() {
        name = "浦島太郎";
    }

    // 誰かを助けるメソッド
    void rescueSomeone(Actor someone) {
        System.out.println(this.name + " は " + someone.toString() + " を助けた。");

    }

    // 道具を手に入れるメソッド
    void getItem(Item item) {
        super.getItem(item);
    }

    // 箱を開けるメソッド
    void openBox(Item item) {
        System.out.println(this.name + " は " + item.toString() + " を開けた。");
        
        // 開けたのが玉手箱なら年をとる
        if (item.name == "玉手箱") {
            this.isOld = true;
        }
    }
}

class Kame extends Actor {
    Kame() {
        name = "亀";
    }

    // 誰かを竜宮城に連れていくメソッド
    void gotoRyuuguujou(Actor someone) {
        System.out.println(this.name + " は "+ someone.toString() +" を竜宮城に連れて行った。");
    }
}

class Childlen extends Actor {
    Childlen() {
        name = "子供たち";
    }

    // 誰かをいじめるメソッド
    void hit(Actor someone) {
        System.out.println(this.name + " は " + someone.toString() + " をいじめている。");
    }
}

class Otohime extends Actor {
    Tamatebako tamatebako;

    Otohime() {
        name = "乙姫";
    }

    // 誰かをおもてなしするメソッド
    void omotenashi(Actor someone) {
        System.out.println(this.name + " は " + someone.toString() + " をもてなした。");

    }
}