/** * 宠物类,狗狗和企鹅的父类。 */ 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()); } */ } }