实例 56

题目

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

分析

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

实现

  1. /**
  2. * Created with IntelliJ IDEA.
  3. *
  4. * @author : 村雨
  5. * @version : 1.0
  6. * @project : Java 编程实例
  7. * @package : PACKAGE_NAME
  8. * @className : Example56
  9. * @createTime : 2021/7/3 22:23
  10. * @email : 747731461@qq.com
  11. * @公众号 : 村雨遥
  12. * @website : https://cunyu1943.github.io
  13. * @description :
  14. */
  15. public class Example56 {
  16. public static void main(String[] args) {
  17. Equipment equipment1 = new Equipment("饮血之刃", 1500);
  18. Equipment equipment2 = new Equipment("破军", 2000);
  19. Equipment equipment3 = new Equipment("攻速鞋", 500);
  20. System.out.println("伽罗目前的装备为:");
  21. System.out.println(equipment1.toString());
  22. System.out.println(equipment2.toString());
  23. System.out.println(equipment3.toString());
  24. }
  25. }
  26. class Equipment {
  27. private String name;
  28. private int price;
  29. public Equipment() {
  30. }
  31. public Equipment(String name, int price) {
  32. this.name = name;
  33. this.price = price;
  34. }
  35. @Override
  36. public String toString() {
  37. return "装备名:" + name + ", 价格:" + price;
  38. }
  39. }

结果

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

实例 57

题目

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

分析

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

实现

  1. /**
  2. * Created with IntelliJ IDEA.
  3. *
  4. * @author : 村雨
  5. * @version : 1.0
  6. * @project : Java 编程实例
  7. * @package : PACKAGE_NAME
  8. * @className : Example57
  9. * @createTime : 2021/7/4 8:40
  10. * @email : 747731461@qq.com
  11. * @公众号 : 村雨遥
  12. * @website : https://cunyu1943.github.io
  13. * @description :
  14. */
  15. public class Example57 {
  16. public static void main(String[] args) {
  17. Hero hero = new Hero("虞姬", 3000, 1000, 50, 800, 0, 0, 0);
  18. System.out.println("英雄信息如下");
  19. System.out.println(hero.toString());
  20. }
  21. }
  22. class Hero {
  23. private String name;
  24. private float hp;
  25. private float mp;
  26. private int initSpeed;
  27. private int attack;
  28. private int killed;
  29. private int beKilled;
  30. private int assist;
  31. public Hero() {
  32. }
  33. public Hero(String name, float hp, float mp, int initSpeed, int attack, int killed, int beKilled, int assist) {
  34. this.name = name;
  35. this.hp = hp;
  36. this.mp = mp;
  37. this.initSpeed = initSpeed;
  38. this.attack = attack;
  39. this.killed = killed;
  40. this.beKilled = beKilled;
  41. this.assist = assist;
  42. }
  43. @Override
  44. public String toString() {
  45. final StringBuffer sb = new StringBuffer();
  46. sb.append("名字 = '").append(name).append('\'');
  47. sb.append(", 血量 = ").append(hp);
  48. sb.append(", 蓝量 = ").append(mp);
  49. sb.append(", 初始速度 = ").append(initSpeed);
  50. sb.append(", 攻击值 = ").append(attack);
  51. sb.append(", 击杀数 = ").append(killed);
  52. sb.append(", 被击杀数 = ").append(beKilled);
  53. sb.append(", 助攻数 = ").append(assist);
  54. return sb.toString();
  55. }
  56. }

结果

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

实例 58

题目

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

分析

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

实现

  1. /**
  2. * Created with IntelliJ IDEA.
  3. *
  4. * @author : 村雨
  5. * @version : 1.0
  6. * @project : Java 编程实例
  7. * @package : PACKAGE_NAME
  8. * @className : Example58
  9. * @createTime : 2021/7/4 8:58
  10. * @email : 747731461@qq.com
  11. * @公众号 : 村雨遥
  12. * @website : https://cunyu1943.github.io
  13. * @description :
  14. */
  15. public class Example58 {
  16. public static void main(String[] args) {
  17. Hero hero = new Hero("虞姬", 3000, 1000, 50, 800, 0, 0, 0);
  18. System.out.println("英雄初始信息如下");
  19. System.out.println(hero.toString());
  20. hero.addAttack(1000);
  21. hero.addSpeed(100);
  22. hero.addKilled(5);
  23. System.out.println("英雄增加属性后信息如下");
  24. System.out.println(hero.toString());
  25. }
  26. }
  27. class Hero {
  28. private String name;
  29. private float hp;
  30. private float mp;
  31. private int initSpeed;
  32. private int attack;
  33. private int killed;
  34. private int beKilled;
  35. private int assist;
  36. public Hero() {
  37. }
  38. public Hero(String name, float hp, float mp, int initSpeed, int attack, int killed, int beKilled, int assist) {
  39. this.name = name;
  40. this.hp = hp;
  41. this.mp = mp;
  42. this.initSpeed = initSpeed;
  43. this.attack = attack;
  44. this.killed = killed;
  45. this.beKilled = beKilled;
  46. this.assist = assist;
  47. }
  48. public void addSpeed(int add) {
  49. System.out.println("购买了鞋子");
  50. this.initSpeed += add;
  51. }
  52. public void addAttack(int add) {
  53. System.out.println("购买了攻击装");
  54. this.attack += add;
  55. }
  56. public void addKilled(int add) {
  57. System.out.println("你击杀了一名敌人");
  58. this.killed += add;
  59. }
  60. @Override
  61. public String toString() {
  62. final StringBuffer sb = new StringBuffer();
  63. sb.append("名字 = '").append(name).append('\'');
  64. sb.append(", 血量 = ").append(hp);
  65. sb.append(", 蓝量 = ").append(mp);
  66. sb.append(", 初始速度 = ").append(initSpeed);
  67. sb.append(", 攻击值 = ").append(attack);
  68. sb.append(", 击杀数 = ").append(killed);
  69. sb.append(", 被击杀数 = ").append(beKilled);
  70. sb.append(", 助攻数 = ").append(assist);
  71. return sb.toString();
  72. }
  73. }

结果

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

实例 59

题目

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

分析

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

实现

  1. import java.util.Scanner;
  2. /**
  3. * Created with IntelliJ IDEA.
  4. *
  5. * @author : 村雨
  6. * @version : 1.0
  7. * @project : Java 编程实例
  8. * @package : PACKAGE_NAME
  9. * @className : Example59
  10. * @createTime : 2021/7/4 9:46
  11. * @email : 747731461@qq.com
  12. * @公众号 : 村雨遥
  13. * @website : https://cunyu1943.github.io
  14. * @description :
  15. */
  16. public class Example59 {
  17. public static void main(String[] args) {
  18. Scanner scanner = new Scanner(System.in);
  19. System.out.println("输入体重 kg");
  20. float weight = scanner.nextFloat();
  21. System.out.println("输入身高 m");
  22. float height = scanner.nextFloat();
  23. System.out.println("BMI = " + calcBMI(height, weight));
  24. }
  25. public static double calcBMI(float height, float weight) {
  26. return weight / height / height;
  27. }
  28. }

结果

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

实例 60

题目

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

分析

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

实现

  1. import java.util.Scanner;
  2. /**
  3. * Created with IntelliJ IDEA.
  4. *
  5. * @author : 村雨
  6. * @version : 1.0
  7. * @project : Java 编程实例
  8. * @package : PACKAGE_NAME
  9. * @className : Example60
  10. * @createTime : 2021/7/4 10:00
  11. * @email : 747731461@qq.com
  12. * @公众号 : 村雨遥
  13. * @website : https://cunyu1943.github.io
  14. * @description :
  15. */
  16. public class Example60 {
  17. public static void main(String[] args) {
  18. Scanner scanner = new Scanner(System.in);
  19. System.out.println("输入月份");
  20. int month = scanner.nextInt();
  21. switch (month) {
  22. case 3:
  23. case 4:
  24. case 5:
  25. System.out.println(month + " 月是春季");
  26. break;
  27. case 6:
  28. case 7:
  29. case 8:
  30. System.out.println(month + " 月是夏季");
  31. break;
  32. case 9:
  33. case 10:
  34. case 11:
  35. System.out.println(month + " 月是秋季");
  36. break;
  37. case 12:
  38. case 1:
  39. case 2:
  40. System.out.println(month + " 月是冬季");
  41. break;
  42. default:
  43. break;
  44. }
  45. }
  46. }

结果

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