zoukankan      html  css  js  c++  java
  • 电子宠物加强版

    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---退出");
        }
    }
  • 相关阅读:
    二分搜索
    中文分词 (机械传统方法 )正向最大匹配
    推荐引擎概述(转自IBM worker)
    linux OS 多线程学习
    FastReport.Net传递报表参数
    MSSQL 2008 镜像的客户端数据库连接字符串
    FastReport.Net自动行高
    ReSharper 8.0开发版 ReSharper 8.0 Early Access
    客户端FastReport.Net默认界面语言
    ReSharper 7.0 正式版发布
  • 原文地址:https://www.cnblogs.com/sutao/p/7223906.html
Copyright © 2011-2022 走看看