java题猫狗大战 求教大佬

猫狗大战

(1)定义类Cat,要求如下:

整型字段hp,设置相应的get和set方法;

无参数列表构造方法Cat(),创造出的hp默认为80;

带参数构造方法Cat(int hp),创造出指定hp的对象;

方法attack(Dog g),参数为Dog对象,每次调用此方法后,用随机数的方式,随机产生0-9的整数伤害,减少参数    Dog对象的hp,并且攻击结果需要在控制台输出,格式为“猫攻击狗,产生**点伤害,狗当前HP为**”。

(2)构建类Dog,要求如下:

整型字段hp,设置相应的get和set方法;

无参数列表构造方法Dog(),创造出的hp默认为90;

带参数构造方法Dog(int hp),创造出指定hp的对象;

方法attack(Cat c),参数为猫对象,每次调用此方法后,用随机数的方式,随机产生0-8的整数伤害,减少参数Cat    对象的hp,并且攻击结果需要在控制台输出,格式为“狗攻击猫,产生**点伤害,猫当前HP为**”。

(3)构建类Fight,要求如下:

拥有main方法,在该方法中,首先构建猫和狗对象,使用循环让猫和狗相互攻击,每次攻击完毕后,判断泰坦和宙斯相应的HP,如果某一方HP小于等于0,则停止循环,并输出结果,格式为“猫/狗HP为**,已经失败,胜利者是狗/猫!”

import java.util.Random;

public class Cat {
    private int hp;

    public Cat() {
        this(80);
    }

    public Cat(int hp) {
        this.hp = hp;
    }

    public int getHp() {
        return hp;
    }

    public void setHp(int hp) {
        this.hp = hp;
    }

    public void attack(Dog dog) {
        Random random = new Random();
        int damage = random.nextInt(10);
        int dogHp = dog.getHp() - damage;
        dog.setHp(dogHp);
        System.out.printf("猫攻击狗,产生%d点伤害,狗当前HP为%d%n", damage, dog.getHp());
    }
}
import java.util.Random;

public class Dog {
    private int hp;

    public Dog() {
        this(90);
    }

    public Dog(int hp) {
        this.hp = hp;
    }

    public int getHp() {
        return hp;
    }

    public void setHp(int hp) {
        this.hp = hp;
    }

    public void attack(Cat cat) {
        Random random = new Random();
        int damage = random.nextInt(9);
        int catHp = cat.getHp() - damage;
        cat.setHp(catHp);
        System.out.printf("狗攻击猫,产生%d点伤害,猫当前HP为%d%n", damage, cat.getHp());
    }
}
public class Fight {
    public static void main(String[] args) {
        Cat cat = new Cat();
        Dog dog = new Dog();

        while (cat.getHp() > 0 && dog.getHp() > 0) {
            cat.attack(dog);
            if (dog.getHp() <= 0) {
                System.out.printf("猫HP为%d,已经失败,胜利者是狗!%n", cat.getHp());
                break;
            }

            dog.attack(cat);
            if (cat.getHp() <= 0) {
                System.out.printf("狗HP为%d,已经失败,胜利者是猫!%n", dog.getHp());
                break;
            }
        }
    }
}