新・明解 Java 入門 演習 14-2 解答
Hello, Terminal!swaponQです!
今回は演習 14-2 に取り組んでいこうと思います。
- 演習 14-2
ロボット型ペットクラスRobotPet(p.407)を拡張した、着せかえ可能なロボット型ペットクラスを作成せよ。インタフェースSkinnableを実装すること。
・Pet.java
class Pet { private String name; public Pet(String name) { this.name = name; } public String getName() { return name; } public void introduce() { System.out.println("■僕の名前は" + name + "です!"); } } class RobotPet extends Pet { public RobotPet(String name) { super(name); } public void introduce() { System.out.println("◇私はロボット。名前は" + getName() + "。"); } }
・Skinnable.java
public interface Skinnable { int BLACK = 0; int RED = 1; int GREEN = 2; int BLUE = 3; int LEOPARD = 4; void changeSkin(int skin); }
・SkinnableRobotPet.java
class SkinnableRobotPet extends RobotPet implements Skinnable { private int skin; public SkinnableRobotPet(int skin, String name) { super(name); this.skin = skin; } public void changeSkin(int skin) { System.out.print("スキンを"); switch(skin) { case BLACK: System.out.print("漆黒"); break; case RED: System.out.print("深紅"); break; case GREEN: System.out.print("柳葉"); break; case BLUE: System.out.print("露草"); break; case LEOPARD: System.out.print("豹柄"); break; default: System.out.print("無地"); break; } System.out.println("に変更しました。"); } }
・PetTester.java
import java.util.Scanner; class PetTester { public static void main(String[] args) { SkinnableRobotPet p = new SkinnableRobotPet(0, "クロ"); p.introduce(); p.changeSkin(Skinnable.RED); } }
・実行結果
◇私はロボット。名前はクロ。 スキンを深紅に変更しました。
今回は以上です。お疲れ様でした!
さて、次回は演習 14-3 です。
Goodbye, Terminal… swaponQでした!