diff --git a/bin/Fukuro.class b/bin/Fukuro.class new file mode 100644 index 0000000..77353c5 --- /dev/null +++ b/bin/Fukuro.class Binary files differ diff --git a/bin/Ikimono.class b/bin/Ikimono.class index f26e92b..a386721 100644 --- a/bin/Ikimono.class +++ b/bin/Ikimono.class Binary files differ diff --git a/bin/Inu.class b/bin/Inu.class index bbfc6d5..636810c 100644 --- a/bin/Inu.class +++ b/bin/Inu.class Binary files differ diff --git a/bin/Kibidango.class b/bin/Kibidango.class index c312229..0e49412 100644 --- a/bin/Kibidango.class +++ b/bin/Kibidango.class Binary files differ diff --git a/bin/Kiji.class b/bin/Kiji.class index 77930dd..5673607 100644 --- a/bin/Kiji.class +++ b/bin/Kiji.class Binary files differ diff --git a/bin/Momo.class b/bin/Momo.class index c1f3aa4..f0b5f53 100644 --- a/bin/Momo.class +++ b/bin/Momo.class Binary files differ diff --git a/bin/Momotaro.class b/bin/Momotaro.class index 5bf7c2a..78975b2 100644 --- a/bin/Momotaro.class +++ b/bin/Momotaro.class Binary files differ diff --git a/bin/Mono.class b/bin/Mono.class index bd07a0a..02f6acd 100644 --- a/bin/Mono.class +++ b/bin/Mono.class Binary files differ diff --git a/bin/MyApp.class b/bin/MyApp.class index eb9ab3a..6773776 100644 --- a/bin/MyApp.class +++ b/bin/MyApp.class Binary files differ diff --git a/bin/Obaasan.class b/bin/Obaasan.class index 701e24f..d55ba0b 100644 --- a/bin/Obaasan.class +++ b/bin/Obaasan.class Binary files differ diff --git a/bin/Ojiisan.class b/bin/Ojiisan.class index b55994f..1619165 100644 --- a/bin/Ojiisan.class +++ b/bin/Ojiisan.class Binary files differ diff --git a/bin/Saru.class b/bin/Saru.class index 0a98188..827f17a 100644 --- a/bin/Saru.class +++ b/bin/Saru.class Binary files differ diff --git a/src/Ikimono.java b/src/Ikimono.java index ef3fe76..a859d65 100644 --- a/src/Ikimono.java +++ b/src/Ikimono.java @@ -1,63 +1,53 @@ -import java.util.ArrayDeque; - public class Ikimono { String name = ""; void printName(){ System.out.println(name); } - void morauKibi(Kibidango dango){ - System.out.println(name + "が "+dango.toString()+" をもらった"); + void morau(Mono mono){ + System.out.println(name + "が "+mono.toString()+" をもらった"); } } - class Momotaro extends Ikimono { - ArrayDeque kibiBukuro; - Momotaro(){ - name = "momotarou"; - } - - void morauFukuro(ArrayDeque f){ - kibiBukuro = f; + Fukuro kibiBukuro; + Momotaro(){ name = "桃太郎"; } + void morau(Mono mono){ + super.morau(mono); + if (mono instanceof Fukuro) kibiBukuro = (Fukuro)mono; } void watasuKibi(Ikimono dareka){ - Kibidango oneKibi = kibiBukuro.pop(); - dareka.morauKibi(oneKibi); - System.out.println("nokori "+kibiBukuro.size()); + Kibidango oneKibi = (Kibidango)kibiBukuro.pop(); + dareka.morau(oneKibi); + System.out.println(" 残り "+kibiBukuro.size()+" 個"); } } - class Ojiisan extends Ikimono { - Ojiisan(){ - name = "ojiiisan"; - } - + Ojiisan(){ name = "お爺さん"; } } - class Obaasan extends Ikimono { + Fukuro fukuro; Obaasan(){ - name = "obaasan"; + name = "お婆さん"; + fukuro = new Fukuro(); } - ArrayDeque giveKibidangos(){ - ArrayDeque fukuro = new ArrayDeque(); + void tsukuruKibi(){ fukuro.add(new Kibidango()); fukuro.add(new Kibidango()); fukuro.add(new Kibidango()); - - return fukuro; + } + void watasuFukuro(Ikimono dareka){ + dareka.morau(fukuro); + fukuro = null; } } class Inu extends Ikimono { - Inu(){ - name = "inu"; - } + Inu(){ name = "犬"; } } class Saru extends Ikimono { - Saru(){ - name = "saru"; - } + Saru(){ name = "猿"; } } class Kiji extends Ikimono { - Kiji(){ - name = "kiji"; - } -} \ No newline at end of file + Kiji(){ name = "キジ"; } +} + + + diff --git a/src/Mono.java b/src/Mono.java index 18b8b3b..70ce297 100644 --- a/src/Mono.java +++ b/src/Mono.java @@ -1,26 +1,42 @@ +import java.util.ArrayDeque; public class Mono { String name = ""; - + public Mono(String name){ + this.name = name; + } @Override public String toString(){ return name; } } - class Momo extends Mono { Momo(){ - name = "momo"; + super("桃"); } Momotaro bornMomotaro(){ - return new Momotaro(); + return new Momotaro(); //桃太郎が生まれる } - } - class Kibidango extends Mono { Kibidango(){ - name = "kibidango"; + super("きび団子"); } - +} +class Fukuro extends Mono { + ArrayDeque fukuro; + Fukuro(){ + super("きび団子が入った袋"); + fukuro = new ArrayDeque(); + } + public void add(Mono mono){ + fukuro.add(mono); + } + public Mono pop(){ + return fukuro.pop(); + } + public int size(){ + return fukuro.size(); + } +} -} \ No newline at end of file + diff --git a/src/MyApp.java b/src/MyApp.java index fa9409f..01d275b 100644 --- a/src/MyApp.java +++ b/src/MyApp.java @@ -1,23 +1,25 @@ public class MyApp { public static void main(String[] args) throws Exception { - // System.out.println("Hello, World!"); - - Ojiisan jisan = new Ojiisan(); - Obaasan baasan = new Obaasan(); - + // むかしむかし、あるところに、おじいさんとお婆さんが住んでいました + Ojiisan ojiisan = new Ojiisan(); + Obaasan obaasan = new Obaasan(); + // お婆さんは川で桃を拾ってきました Momo momo = new Momo(); - + // 桃から、桃太郎が生まれました Momotaro taro = momo.bornMomotaro(); + // お婆さんは、桃太郎に、きび団子の入った袋を渡しました + obaasan.tsukuruKibi(); + obaasan.watasuFukuro(taro); - taro.morauFukuro(baasan.giveKibidangos()); - + // 犬がいました。桃太郎は犬にきび団子を渡しました Inu inu = new Inu(); taro.watasuKibi(inu); + // 猿がいました。桃太郎は猿にきび団子を渡しました Saru saru = new Saru(); taro.watasuKibi(saru); + // キジがいました。桃太郎はキジにきび団子を渡しました Kiji tori = new Kiji(); taro.watasuKibi(tori); - - } } +