diff --git a/src/Eng_Momo/Creatures.java b/src/Eng_Momo/Creatures.java new file mode 100644 index 0000000..4cc6b89 --- /dev/null +++ b/src/Eng_Momo/Creatures.java @@ -0,0 +1,54 @@ +package Eng_Momo; + +public class Creatures { + String name = ""; + void printName(){ System.out.println(name); } + void get(Item mono){ + System.out.println(name + " got "+mono.toString()+"."); + } +} +class Momotaro extends Creatures { + Bag kibiBukuro; + Momotaro(){ name = "Momotaro"; } + void get(Item mono){ + super.get(mono); + if (mono instanceof Bag) kibiBukuro = (Bag)mono; + } + void watasuKibi(Creatures dareka){ + Kibidango oneKibi = (Kibidango)kibiBukuro.pop(); + dareka.get(oneKibi); + System.out.println(" "+kibiBukuro.size()+" kibidango(s) left"); + } +} +class Grandpa extends Creatures { + Grandpa(){ name = "Grandpa"; } +} +class Grandma extends Creatures { + Bag bag; + Grandma(){ + name = "Grandma"; + bag = new Bag(); + } + void makeDumplings(){ + bag.add(new Kibidango()); + bag.add(new Kibidango()); + bag.add(new Kibidango()); + } + void handOverBag(Creatures dareka){ + dareka.get(bag); + bag = null; + } +} +class Dog extends Creatures { + Dog(){ name = "Dog"; } +} +class Monkey extends Creatures { + Monkey(){ name = "Monkey"; } +} +class Pheasant extends Creatures { + Pheasant(){ name = "Pheasant"; } +} + + + + diff --git a/src/Eng_Momo/Item.java b/src/Eng_Momo/Item.java new file mode 100644 index 0000000..2a883eb --- /dev/null +++ b/src/Eng_Momo/Item.java @@ -0,0 +1,46 @@ +package Eng_Momo; + +import java.util.ArrayDeque; +public class Item { + String name = ""; + public Item(String name){ + this.name = name; + } + @Override + public String toString(){ + return name; + } +} +class Peach extends Item { + Peach(){ + super("Peach"); + } + Momotaro bornMomotaro(){ + return new Momotaro(); //Momotaro was born + } +} +class Kibidango extends Item { + Kibidango(){ + super("Kibidango"); + } +} +class Bag extends Item { + ArrayDeque fukuro; + Bag(){ + super("a bag containing kibidango"); + fukuro = new ArrayDeque(); + } + public void add(Item mono){ + fukuro.add(mono); + } + public Item pop(){ + return fukuro.pop(); + } + public int size(){ + return fukuro.size(); + } +} + + + + diff --git a/src/Eng_Momo/MyApp.java b/src/Eng_Momo/MyApp.java new file mode 100644 index 0000000..f42d905 --- /dev/null +++ b/src/Eng_Momo/MyApp.java @@ -0,0 +1,27 @@ +package Eng_Momo; + +public class MyApp { + public static void main(String[] args) throws Exception { + // Once upon a time, an old man and an old woman lived in a certain place. + Grandpa granpa = new Grandpa(); + Grandma grandma = new Grandma(); + // Grandma picked up a peach in the river + Peach momo = new Peach(); + // Momotaro was born from peach + Momotaro taro = momo.bornMomotaro(); + // The grandmother gave Momotaro a bag of kibi dumplings. + grandma.makeDumplings(); + grandma.handOverBag(taro); + + // There was a dog. Momotaro gave the dog a kibi dumpling + Dog dog = new Dog(); + taro.watasuKibi(dog); + // There was a monkey. Momotaro gave the monkey a kibi dumpling + Monkey monkey = new Monkey(); + taro.watasuKibi(monkey); + // There was a pheasant. Momotaro gave the pheasant a kibi dumpling + Pheasant pheasant = new Pheasant(); + taro.watasuKibi(pheasant); + } +} +