/** * 寵物類,狗狗和企鵝的父類。 */ public abstract class Pet { protected String name = "無名氏";// 昵稱 protected int health = 100;// 健康值 protected int love = 0;// 親密度 public abstract void eat(); //抽象方法eat(),負責寵物吃飯功能。 /** * 無參構造方法。 */ public Pet() { } /** * 有參構造方法。 * @param name 昵稱 */ public Pet(String name) { this.name = name; } public String getName() { return name; } public int getHealth() { return health; } public int getLove() { return love; } /** * 輸出寵物信息。 */ public void print() { System.out.println("寵物的自白:\n我的名字叫" + this.name + ",健康值是" + this.health + ",和主人的親密度是" + this.love + "。"); } }
/** * 狗狗類,寵物的子類。*/ public class Dog extends Pet { private String strain;// 品種 /** * 有參構造方法。 * @param name 昵稱 * @param strain 品種 */ public Dog(String name, String strain) { super(name); this.strain = strain; } public String getStrain() { return strain; } /** * 重寫父類的print方法。 */ public void print(){ super.print(); //調用父類的print方法 System.out.println("我是一只 " + this.strain + "。"); } /** * 實現吃飯方法。 */ public void eat() { super.health = super.health + 3; System.out.println("狗狗"+super.name + "吃飽啦!健康值增加3。"); } }
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import cn.jbit.epet.poly.Dog; /** * 測試通過Iterator和增強型for循環遍歷Map集合 */ public class Test5 { public static void main(String[] args) { /* 1、創建多個狗狗對象*/ Dog ououDog = new Dog("歐歐", "雪娜瑞"); Dog yayaDog = new Dog("亞亞", "拉布拉多"); Dog meimeiDog = new Dog("美美", "雪娜瑞"); Dog feifeiDog = new Dog("菲菲", "拉布拉多"); /* 2、創建Map集合對象並把多個狗狗對象放入其中*/ Map dogMap=new HashMap(); dogMap.put(ououDog.getName(),ououDog); dogMap.put(yayaDog.getName(),yayaDog); dogMap.put(meimeiDog.getName(),meimeiDog); dogMap.put(feifeiDog.getName(),feifeiDog); /*3、通過迭代器依次輸出集合中所有狗狗的信息*/ System.out.println("使用Iterator遍歷,所有狗狗的昵稱和品種分別是:"); Set keys=dogMap.keySet();//取出所有key的集合 Iterator it=keys.iterator();//獲取Iterator對象 while(it.hasNext()){ String key=(String)it.next(); //取出key Dog dog=(Dog)dogMap.get(key); //根據key取出對應的值 System.out.println(key+"\t"+dog.getStrain()); } /*//使用foreach語句輸出集合中所有狗狗的信息 for(Object key:keys){ Dog dog=(Dog)dogMap.get(key); //根據key取出對應的值 System.out.println(key+"\t"+dog.getStrain()); } */ } }