那些年,我们一起做过的 Java 课后练习题(56 - 60)


已收录至博客 村雨遥 ,建议关注后续修改更新 ~

实例 56

题目

设计一个装备类 Equipment,该类有两个属性,一个是名字 name,类型为字符串类型,另一个是价格 price,类型为 int。然后实例化 3 件具体装备并打印其名字和价格。

分析

主要考察类的创建以及如何实例化一个对象,并且伴随有重写 toString() 方法。

实现

/**
 * Created with IntelliJ IDEA.
 *
 * @author : 村雨
 * @version : 1.0
 * @project : Java 编程实例
 * @package : PACKAGE_NAME
 * @className : Example56
 * @createTime : 2021/7/3 22:23
 * @email : 747731461@qq.com
 * @公众号 : 村雨遥
 * @website : https://cunyu1943.github.io
 * @description :
 */
public class Example56 {
    public static void main(String[] args) {
        Equipment equipment1 = new Equipment("饮血之刃", 1500);
        Equipment equipment2 = new Equipment("破军", 2000);
        Equipment equipment3 = new Equipment("攻速鞋", 500);

        System.out.println("伽罗目前的装备为:");
        System.out.println(equipment1.toString());
        System.out.println(equipment2.toString());
        System.out.println(equipment3.toString());
    }
}

class Equipment {
    private String name;
    private int price;

    public Equipment() {
    }

    public Equipment(String name, int price) {
        this.name = name;
        this.price = price;
    }

    @Override
    public String toString() {
        return "装备名:" + name + ", 价格:" + price;
    }
}

结果

实例 57

题目

现在王者荣耀很火,相信大部分人也玩过,那我们就来定义一个英雄类,用来作为王者荣耀里的各英雄的父类。一般来讲,一个英雄有名字、血量、蓝量、初始移动速度、攻击值……,我们需要做的,就是将这些作为类的属性尽可能地添加到类中。

分析

主要考察如何定义类,以及如何添加类中的属性,而且如何选择属性的数据类型。

实现

/**
 * Created with IntelliJ IDEA.
 *
 * @author : 村雨
 * @version : 1.0
 * @project : Java 编程实例
 * @package : PACKAGE_NAME
 * @className : Example57
 * @createTime : 2021/7/4 8:40
 * @email : 747731461@qq.com
 * @公众号 : 村雨遥
 * @website : https://cunyu1943.github.io
 * @description :
 */
public class Example57 {
    public static void main(String[] args) {
        Hero hero = new Hero("虞姬", 3000, 1000, 50, 800, 0, 0, 0);
        System.out.println("英雄信息如下");
        System.out.println(hero.toString());
    }
}

class Hero {
    private String name;
    private float hp;
    private float mp;
    private int initSpeed;
    private int attack;
    private int killed;
    private int beKilled;
    private int assist;

    public Hero() {
    }

    public Hero(String name, float hp, float mp, int initSpeed, int attack, int killed, int beKilled, int assist) {
        this.name = name;
        this.hp = hp;
        this.mp = mp;
        this.initSpeed = initSpeed;
        this.attack = attack;
        this.killed = killed;
        this.beKilled = beKilled;
        this.assist = assist;
    }


    @Override
    public String toString() {
        final StringBuffer sb = new StringBuffer();
        sb.append("名字 = '").append(name).append('\'');
        sb.append(", 血量 = ").append(hp);
        sb.append(", 蓝量 = ").append(mp);
        sb.append(", 初始速度 = ").append(initSpeed);
        sb.append(", 攻击值 = ").append(attack);
        sb.append(", 击杀数 = ").append(killed);
        sb.append(", 被击杀数 = ").append(beKilled);
        sb.append(", 助攻数 = ").append(assist);
        return sb.toString();
    }
}

结果

实例 58

题目

既然王者荣耀中的英雄有很多属性,而且也有很多装备,我们买了装备之后就会给我们的英雄加血量、加攻击值或则加移动速度之类。我们就来定义几个方法,用于购买装备后给我们的英雄增加属性值。

分析

主要考察如何给我们的类定义方法。

实现

/**
 * Created with IntelliJ IDEA.
 *
 * @author : 村雨
 * @version : 1.0
 * @project : Java 编程实例
 * @package : PACKAGE_NAME
 * @className : Example58
 * @createTime : 2021/7/4 8:58
 * @email : 747731461@qq.com
 * @公众号 : 村雨遥
 * @website : https://cunyu1943.github.io
 * @description :
 */
public class Example58 {
    public static void main(String[] args) {
        Hero hero = new Hero("虞姬", 3000, 1000, 50, 800, 0, 0, 0);
        System.out.println("英雄初始信息如下");
        System.out.println(hero.toString());
        hero.addAttack(1000);
        hero.addSpeed(100);
        hero.addKilled(5);

        System.out.println("英雄增加属性后信息如下");
        System.out.println(hero.toString());
    }
}

class Hero {
    private String name;
    private float hp;
    private float mp;
    private int initSpeed;
    private int attack;
    private int killed;
    private int beKilled;
    private int assist;

    public Hero() {
    }

    public Hero(String name, float hp, float mp, int initSpeed, int attack, int killed, int beKilled, int assist) {
        this.name = name;
        this.hp = hp;
        this.mp = mp;
        this.initSpeed = initSpeed;
        this.attack = attack;
        this.killed = killed;
        this.beKilled = beKilled;
        this.assist = assist;
    }

    public void addSpeed(int add) {
        System.out.println("购买了鞋子");
        this.initSpeed += add;
    }

    public void addAttack(int add) {
        System.out.println("购买了攻击装");
        this.attack += add;
    }

    public void addKilled(int add) {
        System.out.println("你击杀了一名敌人");
        this.killed += add;
    }


    @Override
    public String toString() {
        final StringBuffer sb = new StringBuffer();
        sb.append("名字 = '").append(name).append('\'');
        sb.append(", 血量 = ").append(hp);
        sb.append(", 蓝量 = ").append(mp);
        sb.append(", 初始速度 = ").append(initSpeed);
        sb.append(", 攻击值 = ").append(attack);
        sb.append(", 击杀数 = ").append(killed);
        sb.append(", 被击杀数 = ").append(beKilled);
        sb.append(", 助攻数 = ").append(assist);
        return sb.toString();
    }
}

结果

实例 59

题目

设计一个方法,用于计算你的 BMI 值是多少,其中 BMI = 体重(kg)/ 身高(m) * 身高(m)

分析

输入体重和身高,然后调用方法计算 BMI 即可。

实现

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 *
 * @author : 村雨
 * @version : 1.0
 * @project : Java 编程实例
 * @package : PACKAGE_NAME
 * @className : Example59
 * @createTime : 2021/7/4 9:46
 * @email : 747731461@qq.com
 * @公众号 : 村雨遥
 * @website : https://cunyu1943.github.io
 * @description :
 */
public class Example59 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入体重 kg");
        float weight = scanner.nextFloat();
        System.out.println("输入身高 m");
        float height = scanner.nextFloat();
        System.out.println("BMI = " + calcBMI(height, weight));
    }

    public static double calcBMI(float height, float weight) {
        return weight / height / height;
    }
}

结果

实例 60

题目

通过输入的月份,判断该月处于哪一个季节。

分析

主要考察 switch 多分支的判断,而且要注意,要结束一个分支的判断时,需要有 break。要注意 switch 自从 JDK 1.7 及之后是支持 String 类型的。当然也可以使用 if 进行判断。

实现

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 *
 * @author : 村雨
 * @version : 1.0
 * @project : Java 编程实例
 * @package : PACKAGE_NAME
 * @className : Example60
 * @createTime : 2021/7/4 10:00
 * @email : 747731461@qq.com
 * @公众号 : 村雨遥
 * @website : https://cunyu1943.github.io
 * @description :
 */
public class Example60 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("输入月份");
        int month = scanner.nextInt();

        switch (month) {
            case 3:
            case 4:
            case 5:
                System.out.println(month + " 月是春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println(month + " 月是夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println(month + " 月是秋季");
                break;
            case 12:
            case 1:
            case 2:
                System.out.println(month + " 月是冬季");
                break;
            default:
                break;
        }
    }
}

结果

建议关注公众号 「村雨遥」,最新干货文章不容错过 ~


文章作者: 村雨遥
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 村雨遥 !
评论
评论
  目录