Java练习题,包含类,方法,对象,属性调用,this使用和构造方法

2020-07-28 14:33:23 浏览数 (3)

这是一篇Java练习贴,文章中布置了习题,讲解了需求,跟考点。后面也跟着习题的代码。有兴趣的同学可以自己写一下代码,然后再来跟文中的代码对比,看看有什么值得学习的地方。

Java习题第一题

题目:创建一个LOL中的英雄类和怪物类,要求:

怪物类中加入生命值属、等级属性,生命值=等级*1000

英雄类中加入“经验值”,“等级”,“攻击力”等属性变量,加入“击打”方法,击打的目标是怪物,击打的结果是怪物的生命值-英雄攻击力

考点:类的声明、方法的声明、对象的声明与属性调用

Hero类

public class Hero {


        int EXP;//经验值
        int grade;//等级
        int aggressivity;//攻击

        
        //击打的方法
        int strike(int x){
            return x - aggressivity;
        }

        
        public int getEXP() {
            return EXP;
        }






        public void setEXP(int EXP) {
            this.EXP = EXP;
        }






        public int getGrade() {
            return grade;
        }






        public void setGrade(int grade) {
            this.grade = grade;
        }






        public int getAggressivity() {
            return aggressivity;
        }






        public void setAggressivity(int aggressivity) {
            this.aggressivity = aggressivity;
        }


}

Monster 类

public class Monster {


        int grade;//等级
        int healthValue ;//生命值

        
        public int getGrade() {
            return grade;
        }
        public void setGrade(int grade) {
            this.grade = grade;
        }
        public int getHealthValue() {
            healthValue = grade*1000;
            return healthValue;
        }
        public void setHealthValue(int healthValue) {
            this.healthValue = healthValue;
        }



        
}

main

public class Work1 {


    public static void main(String[] args) {
        //怪物属性
        Monster m = new Monster();
        m.setGrade(5);
        System.out.println("怪物的等级为"+m.grade+"级  生命值为:"+m.getHealthValue());

        
        //英雄 
        Hero h = new Hero();
        h.setAggressivity(160);
        int a;
        a = h.strike(m.healthValue);
        m.setHealthValue(a);
        System.out.println("英雄击打后的生命值:"+m.healthValue);
    }
}

Java习题结果

Java习题第二题

题目:自定义一个英雄类,要求:

英雄的级别最低为0,最高为30级,经验值最低为0,最高为30级时的经验值

该类中要求有一个含有参数的构造函数,参数为英雄的经验值,初始化时要保证经验值在要求范围之内,通过经验值计算英雄的级别,英雄的级别计算公式如下: N=当前级别,EXP(经验值)=30(N^3+5N)-80

构建一个无参的构造方法,将经验值设置为0

利用英雄类无参和带有参数的构造函数分别构建英雄对象,并输出英雄的等级和经验值。

考点:类的声明、构造方法、this的使用,方法的调用

Hero类

public class Hero2 {


    int EXP;//经验值
    int grade;//等级

    
    //有参的构造函数
    public Hero2(int EXP){
        this.EXP = EXP;//经验值
        }

    
    //无参的构造函数
    public Hero2(){
        EXP=0;//经验值
    }

    
}

main

public class Work2 {


    public static void main(String[] args) {
        //无参构造结果
        Hero2 e= new Hero2();
        System.out.print("无参构造的");
        System.out.println("经验值为:"+e.EXP+" 时,等级为:"+e.grade+" 级");

        
        //有参构造结果
        int a=120000;
        Hero2 h = new Hero2(a);
        System.out.print("有参构造的");
        for(int i = 1 ; i <=30 ; i++ ) {

            
            //System.out.println(i+"级经验值:"+(30*(i*i*i+5*i)-80));//输出1-30级每级的经验值所需经验
            if((30*(i*i*i+5*i)-80) <= h.EXP && (30*((i+1)*(i+1)*(i+1)+5*(i+1))-80)>h.EXP ) {
                h.grade=i;
                break;
            }
        }
        System.out.println("经验值为:"+h.EXP+" 时,等级为:"+h.grade+" 级");
    }


}

Java习题结果

以上是两道Java的习题及代码,希望对同学们有所帮助。对Java感兴趣的同学可以看一下教程

文章参考来源:blog.csdn.net/d694046387/java/article/details/107620181

0 人点赞