第一次Java出题

定义一个王者荣耀成员类moba,
其私有数据成员有血量blood(初始为100)、攻击力fire(初始为15)、防御defend(初始为10)、已经创建的成员个数sum(初始化为0),
公有函数成员包括吃饭eat()、运动sport()、睡觉sleep()、获得个数getsum()、前者打败后者defeat(moba a,moba b)【defeat规则:前者夺取后者所有,后者清零】
其中,吃饭使血量加50,运动使攻击力加10,睡觉使防御力加2。

主函数已经给出,请根据主函数编写此类。
public static void main(String[] args) {
        moba m1=new moba();
        System.out.println(moba.getsum());
        System.out.println(m1.blood+" "+m1.fire+" "+m1.defend);
        
        moba m2=new moba();
        for(int i=0;i<15;i++) {
            if(i<=6) {
                m2.sport();
            }
            if(i<=10) {        
                m2.sleep();
            }
            else if(i<14) {
                m2.eat();
            }
        }
        System.out.println(moba.getsum());
        System.out.println(m2.blood+" "+m2.fire+" "+m2.defend);
        moba.defeat(m1,m2);
        System.out.println(m1.blood+" "+m1.fire+" "+m1.defend);
        System.out.println(m2.blood+" "+m2.fire+" "+m2.defend);
    }


正确结果:
1
100 15 10
2
250 85 32
350 100 42
0 0 0

//以下为官方答案

public class Hello {

    public static class moba{

        private int blood=100;

        private int fire=15;

        private int defend=10;

        private static int sum=0;

        public void eat() {

            blood+=50;

        }

        public void sport() {

            fire+=10;

        }

        public void sleep() {

            defend+=2;

        }

        moba(){

            sum++;

        }

        public static int getsum() {

            return sum;

        }

        public static void defeat(moba a,moba b) {

            a.blood+=b.blood;

            a.fire+=b.fire;

            a.defend+=b.defend;

            b.blood=0;

            b.defend=0;

            b.fire=0;

        }

    };

   

    //注释部分是不给的

    public static void main(String[] args) {

        moba m1=new moba();

        System.out.println(moba.getsum());

        System.out.println(m1.blood+" "+m1.fire+" "+m1.defend);

       

        moba m2=new moba();

        for(int i=0;i<15;i++) {

            if(i<=6) {//7次     7*10+(原有)10

                m2.sport();

            }

            if(i<=10) {//11次 11*2+(原有)15

                m2.sleep();

            }

            else if(i<14) {//3次 3*50+(原有)100

                m2.eat();

            }

        }

        System.out.println(moba.getsum());

        System.out.println(m2.blood+" "+m2.fire+" "+m2.defend);

        moba.defeat(m1,m2);

        System.out.println(m1.blood+" "+m1.fire+" "+m1.defend);

        System.out.println(m2.blood+" "+m2.fire+" "+m2.defend);

    }

}

 

//输出答案

//1

//100 15 10

//2

//250 85 32

//350 100 42

//0 0 0

转载于:https://www.cnblogs.com/TogetherLaugh233/p/7804666.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值