我看的网课定义了一个类叫battle写了一个方法public void attack(battle role) 这里的参数前面的battle是什么东西



import java.util.Random;

public class battle {
    //定义成员变量
    private String name;
    private int blood;
    //快捷建立空参
    public battle() {
    }
    //快捷建立实参
    public battle(String name, int blood) {
        this.name = name;
        this.blood = blood;
    }
    //快捷写出每个get和set方法

    public String getName() {
        return name;
    }
    /t赋值
    public void setName(String name) {
        this.name = name;
    }

    public int getBlood() {
        return blood;
    }

    public void setBlood(int blood) {
        this.blood = blood;
    }

    //定义一个方法表示人物在攻击
    //方法的调用者去攻击参数
    //battle role表示传入的是实例化的对象的地址
    public void attack(battle role){
        //计算收到的伤害
        Random r = new Random();
        int hurt = r.nextInt(1,20);

        //剩余血量
        int remain = role.getBlood() - hurt;
        //对剩余血量做个验证,必须大于等于0
        remain = remain < 0 ? 0 : remain;
        //修改下挨揍人的血量>=0
        role.setBlood(remain);
        //this表示方法的调用者
        System.out.println(this.getName()+"举起拳头打了"+role.getName()+"一下," +
                "造成"+hurt+"点伤害,"+role.getName()+"还剩"+remain+"滴血。");
    }

}

基于Monster 组和GPT的调写:

  • battle是一个类名,表示一个战斗类。public void attack(battle role)是这个类中的一个方法,表示这个战斗类可以攻击另一个战斗类对象。在这个方法的参数列表中,battle表示这个参数的数据类型是战斗类。这个参数名为role,表示传入的实参是另一个战斗类的对象。这样,在调用这个方法时,就可以传入一个其他实例化的battle类对象作为参数。