1.第11章 11.5实做程序:教材P132 第2题:

在前面章节完成的Worker类基础上进行修改,添加计算工人年收入的重载方法。计算年收入有两个方法,第一个方法是保底工资+年工时单价;第二种方法是固定月工资12.设计测试类Main,分别使用两种方法计算工人的年收入。
要点提示:
(1)第一个方法参数有:保底工资、年工时、单价,三个参数。
(2)第二个方法参数有:月固定工资,一个参数
(3)在测试类中输入保底工资、年工时、单价和月固定工资,输出对应的年收入。
(4)保底工资、年工时、单价、月固定工资均为int类型
输入提示为:
请输入保底工资、年工时和单价:
请输入月固定工资:
输入的数据值为:
10000
2000
40
6500
输出结果为:
第一种方式的年收入是:90000
第二种方式的年收入是:78000

  1. import java.util.Scanner;
  2. class Worker{
  3. private String name;
  4. private int age;
  5. private int salary;
  6. private String level;
  7. private TableInfo table;
  8. public Worker(String name,int age,int salary,String level,TableInfo table){
  9. this.name=name;
  10. this.age=age;
  11. this.salary=salary;
  12. this.level=level;
  13. this.table=table;
  14. this.table.setOwne(this);
  15. }
  16. public Worker(){
  17. }
  18. public int nianshouru(int baodi,int gongshi,int danjia){
  19. return (baodi+(gongshi*danjia));
  20. }
  21. public int nianshouru(int yuegongzi){
  22. return yuegongzi*12;
  23. }
  24. public int getSalary(){
  25. return salary;
  26. }
  27. public String getName(){
  28. return name;
  29. }
  30. public void display(){
  31. }
  32. }
  33. class TableInfo{
  34. private String tshape;
  35. private Worker owne;
  36. public TableInfo(String tshape){
  37. this.tshape=tshape;
  38. }
  39. public void setOwne(Worker owne){
  40. this.owne=owne;
  41. }
  42. public Worker getOwne(){
  43. return owne;
  44. }
  45. public String getTshape(){
  46. return tshape;
  47. }
  48. public void print(){
  49. owne.display();
  50. //System.out.println("""我的桌子:"+tshape);
  51. }
  52. }
  53. public class Main{
  54. public static void main(String [] args){
  55. int baodi;
  56. int gongshi;
  57. int danjia;
  58. int yuegongzi;
  59. int gongzi1=0;
  60. int gongzi2=0;
  61. Scanner sc=new Scanner(System.in);
  62. System.out.println("请输入保底工资、年工时和单价:");
  63. baodi=sc.nextInt();
  64. gongshi=sc.nextInt();
  65. danjia=sc.nextInt();
  66. System.out.println("请输入月固定工资:");
  67. yuegongzi=sc.nextInt();
  68. TableInfo table=new TableInfo("圆形");
  69. Worker fanshio=new Worker("张工",25,6000,"初级",table);
  70. Worker fanshit=new Worker();
  71. gongzi1=fanshio.nianshouru(baodi,gongshi,danjia);
  72. gongzi2=fanshit.nianshouru(yuegongzi);
  73. System.out.println("第一种方式的年收入是:"+gongzi1);
  74. System.out.println("第二种方式的年收入是:"+gongzi2);
  75. table.print();
  76. }
  77. }

2.设计类。在类定义中通过重载方法分别计算球体和圆柱体的体积。在测试类中调用,显示计算结果。

要点提示:
(1)定义两个重载的方法计算体积。
(2)第一个方法的参数为球半径r,该方法计算球体的体积。计算球体积的公式是:(4/3.0)3.14rrr,
(3)第二个方法的参数为底半径r和高度h,该方法计算圆柱体的体积。圆柱体体积公式是:3.14rr*h
(4)调用第一个方法时,球半径的值10
(5)调用第二个方法时,底半径的值为10,高为8
(6)程序没有输入提示!
输出结果是:
半径为10的球体积是:4186.666666666667低半径为10,高为8的圆柱体积是:2512.0

  1. class Wuti{
  2. public Wuti(){
  3. }
  4. public double tiji(int r){
  5. return (4/3.0)*3.14*r*r*r;
  6. }
  7. public double tiji(int r,int h){
  8. return 3.14*r*r*h;
  9. }
  10. }
  11. public class Main{
  12. public static void main(String [] args){
  13. int r=10;
  14. int h=8;
  15. Wuti qiuti=new Wuti();
  16. Wuti yuanzhuti=new Wuti();
  17. System.out.println("半径为"+r+"的球体积是:"+qiuti.tiji(r));
  18. System.out.println("低半径为"+r+",高为"+h+"的圆柱体积是:"+yuanzhuti.tiji(r,h));
  19. }
  20. }

image.png