ネコを作る
概要
猫を表すクラスとそれを継承するクラスを作成し動作を確認する。継承の基本を学ぶ。
class MyAnimals { private int age; public void setAge(int age) { this.age = age; } public int getAge() { return age; } } class MyCat extends MyAnimals { private String name; MyCat() { } MyCat(String name, int age) { this.name = name; super.setAge(age); System.out.println("この猫の名前を[" + this.name + "]年齢を[" + super.getAge() + "]才で生成、初期化しました"); } public void incrementAge() { int temp; temp = super.getAge() + 1; super.setAge(temp); System.out.println("[" + this.name + "]が一つ年を取り[" + super.getAge() + "]才になりました"); } public void displayName() { System.out.println("この猫の名前は[" + this.name + "]です"); } public String toString() { return "この猫は名前が[" + this.name + "]年齢が[" + super.getAge() + "]才です"; } public void setName(String name) { this.name = name; } public String getName() { return name; } } class AmericanShorthair extends MyCat { private boolean ismale; public AmericanShorthair(String name, int age, boolean ismale) { super(name, age); super.setName(name); super.setAge(age); this.ismale = ismale; System.out.println("アメリカンショートヘア この猫は名前が[" + super.getName() + "] 年齢が[" + super.getAge() + "]才です"); System.out.println("性別(ismale)は[" + this.ismale + "]で初期化して生成しました"); } @Override public String toString() { return "アメリカンショートヘア:[" + super.getName() + "]/[" + super.getAge() + "]才 性別[" + this.ismale + "](雄true/雌false)"; } public void printGender() { if (this.ismale == true) { System.out.println("アメリカンショートヘア[" + super.getName() + "]は[雄]です"); } else { System.out.println("アメリカンショートヘア[" + super.getName() + "]は[雌]です"); } } } class ScottishFold extends MyCat { private boolean ear; public ScottishFold(String name, int age, boolean ear) { super(name, age); super.setName(name); super.setAge(age); this.ear = ear; System.out.println("スコティッシュフォールド この猫は名前が[" + super.getName() + "] 年齢が[" + super.getAge() + "]才です"); System.out.println("耳折れは[" + this.ear + "]で初期化して生成しました"); } public String toString() { return "スコティッシュフォールド:[" + super.getName() + "]/[" + super.getAge() + "]才 耳折れ[" + this.ear + "](折れtrue/立ちfalse)"; } public void printEar() { if (this.ear == true) { System.out.println("スコティッシュフォールド[" + super.getName() + "]の耳は折れています"); } else { System.out.println("スコティッシュフォールド[" + super.getName() + "]の耳は立っています"); } } } class MyCatTest { public static void main(String[] args) { // オブジェクト 単なる猫、4才として生成 MyCat mc1 = new MyCat("単なる猫", 4); mc1.displayName(); mc1.incrementAge(); System.out.println(); AmericanShorthair mas1 = new AmericanShorthair("シマ", 6, true); mas1.displayName(); mas1.printGender(); mas1.incrementAge(); System.out.println(mas1); System.out.println(); ScottishFold sf1 = new ScottishFold("マル", 2, true); sf1.displayName(); sf1.printEar(); sf1.incrementAge(); System.out.println(sf1); } }
実行結果
この猫の名前を[単なる猫]年齢を[4]才で生成、初期化しました
この猫の名前は[単なる猫]です
[単なる猫]が一つ年を取り[5]才になりました
この猫の名前を[シマ]年齢を[6]才で生成、初期化しました
アメリカンショートヘア この猫は名前が[シマ] 年齢が[6]才です
性別(ismale)は[true]で初期化して生成しました
この猫の名前は[シマ]です
アメリカンショートヘア[シマ]は[雄]です
[シマ]が一つ年を取り[7]才になりました
アメリカンショートヘア:[シマ]/[7]才 性別[true](雄true/雌false)
この猫の名前を[マル]年齢を[2]才で生成、初期化しました
スコティッシュフォールド この猫は名前が[マル] 年齢が[2]才です
耳折れは[true]で初期化して生成しました
この猫の名前は[マル]です
スコティッシュフォールド[マル]の耳は折れています
[マル]が一つ年を取り[3]才になりました
スコティッシュフォールド:[マル]/[3]才 耳折れ[true](折れtrue/立ちfalse)
スコティッシュフォールド 2016年カレンダー 16CL-1144
- 出版社/メーカー: ・
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る
- メディア:
- この商品を含むブログを見る