1、Pet 父类
package com.hanqi.maya.model; import java.util.Date; /** * 宠物类 * 健康值不能小于5 * 饥饿值5~95 * 开心值:如果小于30,每次有活动,健康值-2 * * @author asus * */ public abstract class Pet { private String name; private String sex; private int age; private Date createtime; private int happy; private int healthy; private int hungry; private boolean isAlive; public Pet(String name, String sex) { super(); this.name = name; this.sex = sex; this.age = 1; this.createtime = new Date(); //注意Date this.happy = 90; this.healthy = 100; this.hungry = 80; this.isAlive = true; } public abstract void eat();//含有抽象方法的类必须声明为抽象类,所以类名那里也要加上abstract public abstract void play(); public abstract void hospital(); public void check(){ if(healthy < 5 || hungry < 5 || hungry > 95){ isAlive = false; } if(happy < 30){ healthy -= 2; } if(healthy > 100){ healthy = 100; } if(happy > 100){ happy = 100; } this.setAge((int)((System.currentTimeMillis() - createtime.getTime()) /1000 /5) + 1); } public void showInfo(){ check(); System.out.println("宠物信息:"); System.out.println(" 名字: "+name+",性别: "+sex+",年龄: "+age);// 转义制表符,相当于Tab键 System.out.println(" 开心值: "+ happy); System.out.println(" 健康值: "+ healthy); System.out.println(" 饥饿值: "+ hungry); } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getCreatetime() { return createtime; } public void setCreatetime(Date createtime) { this.createtime = createtime; } public int getHappy() { return happy; } public void setHappy(int happy) { this.happy = happy; } public int getHealthy() { return healthy; } public void setHealthy(int healthy) { this.healthy = healthy; } public int getHungry() { return hungry; } public void setHungry(int hungry) { this.hungry = hungry; } public boolean isAlive() { return isAlive; } public void setAlive(boolean isAlive) { this.isAlive = isAlive; } }
2、Rabbit 子类
package com.hanqi.maya.model; public class Rabbit extends Pet { public Rabbit(String name, String sex) { super(name, sex); } @Override public void eat() { if(this.isAlive()){ check(); System.out.println(this.getName() + "拿到一根萝卜在吃,饥饿值-20"); this.setHungry(this.getHungry() - 20); check(); }else{ System.err.println("你的宠物挂了"); } } public void play() { if(this.isAlive()){ check(); System.out.println(this.getName() + "玩了一个魔方,饥饿值+5,开心值+10"); this.setHungry(this.getHungry() + 5); this.setHappy(this.getHappy() + 10); check(); }else{ System.err.println("你的宠物挂了"); } } public void hospital() { if(this.isAlive()){ check(); System.out.println(this.getName() + "在医院里哇哇叫,饥饿值+20,健康值+50"); this.setHungry(this.getHungry() + 20); this.setHealthy(this.getHealthy() + 50); check(); }else{ System.err.println("你的宠物挂了"); } } }
3、Main方法
package com.hanqi.maya.text; import java.util.Scanner; import com.hanqi.maya.model.Pet; import com.hanqi.maya.model.Rabbit; public class Main { public static void main(String[] args) { //Pet p = new Rabbit("旺财", "男"); //p.showInfo(); Pet p = null; Scanner scanner = new Scanner (System.in); boolean selectFlag = true; boolean circleFlag = true; /* System.out.println("请输入宠物类型"); System.out.println("1--兔子"); */ while(circleFlag){ if(selectFlag){ String s = scanner.nextLine(); System.out.println("输入宠物的姓名和性别,用逗号分开"); String info = scanner.nextLine(); String[] infos = info.split(","); if("1".equals(s)){ p = new Rabbit(infos[0],infos[1]); selectFlag = false; } } printControl(); String ss = scanner.nextLine(); if("1".equals(ss)){ p.showInfo(); } else if("2".equals(ss)){ p.eat(); } else if("3".equals(ss)){ } else if("4".equals(ss)){ } else if("5".equals(ss)){ System.out.println("再见"); circleFlag = false; } else{ System.out.println("无此操作"); } } scanner.close(); } private static void printControl(){ System.out.println("输入想进行的操作"); System.out.println("1---显示信息"); System.out.println("2---吃饭"); System.out.println("3---玩游戏"); System.out.println("4---去医院"); System.out.println("5---退出"); } }