研究生薪资管理系统-课后程序(JAVA基础案例教程-黑马程序员编著-第四章-课后作业)

【案例4-5】研究生薪资管理系统

【案例介绍】

  1. 案例描述

在学校中,学生每个月需要交相应的生活费,老师每个月有相应的工资,而在职研究生既是老师又是学生,所以在职研究生既需要交学费又会有工资。下面要求编写一个程序来统计在职研究生的收入与学费,如果收入减去学费不足2000 元,则输出“provide a loan”(需要贷款)信息,。

本案例要求使用接口实现该程序。

  1. 运行结果

【案例分析】

(1)定义两个接口,在StudentManageInterface接口中声明两个方法:getFree()和setFree(),用于设置和获取学生的学费;在TeacherManageInterface类中声明两个方法:gePay()和setPaye(),用于设置和获取教师的工资。

(2)定义主类 Graduate,分别实现StudentManageInterface和TeacherManageInterface接口。

(3)定义Graduate类的成员变量,和构造方法。

(4)给出四个接口方法的实现。

(5)给出一个计算是否需要贷款的方法,在里面统计年收入和学费,并输出是否需要贷款的信息。 

(6)在main() 方法中创建一个姓名为“zhangsan”的研究生,调用计算是否需要贷款的方法。

【案例实现】

Graduate.java

  1. class Graduate implements StudentManageInterface,
  2. TeacherManageInterface {
  3.     private String name, sex;
  4.     private int age;
  5.     private double fee, pay;
  6.     Graduate() {
  7.     }
  8.     Graduate(String name, String sex, int age, double fee, double pay) {
  9.         this.name = name;
  10.         this.sex = sex;
  11.         this.age = age;
  12.    this.fee = fee;
  13.    this.pay = pay;
  14. }
  15.     public String getName() {
  16.         return name;
  17.     }
  18.     public String getSex() {
  19.         return sex;
  20.     }
  21.     public int getAge() {
  22.         return age;
  23.     }
  24.     public void setFree(double fee) {
  25.         this.fee = fee;
  26.     }
  27.     public double getFree() {
  28.         return fee;
  29.     }
  30.     public void setPay(double pay) {
  31.         this.pay = pay;
  32.     }
  33.     public double getPay() {//对接口的抽象方法必须重写
  34.         return pay;
  35.     }
  36. }

上述代码中,Graduate类实现了StudentManagerInterface和TeacherManagerInterface接口,并重写了两个接口中的方法。在main()方法中,计算了名为“zhangsan”的研究生是否需要贷款。

StudentManagerInterface.java

  1. interface StudentManageInterface{              //interface 接口名
  2.     public abstract void setFree(double fee);  //抽象方法
  3.     public abstract double getFree();
  4. }

上述代码中,创建了一个StudentManagerInterface接口,定义了setFree()和get Free ()方法,用于设置和获取学生学费。

TeacherManagerInterface.java

  1. interface TeacherManageInterface{
  2.     public abstract double getPay();
  3.     public abstract void setPay(double pay);
  4. }

上述代码中,创建了一个TeacherManagerInterface接口,定义了setPay()和getPay()方法,用于设置和获取教师工资。

TestDemo.java

  1. public class TestDemo {
  2.     public static void main(String[] args) {
  3.         Graduate gr = new Graduate("zhangsan", "", 5, 8000, 3000);
  4.         judgeLoan(gr);
  5.     }
  6.     public static void judgeLoan(Graduate gr) {//对象作形参
  7.         if (gr.getPay() * 12 - gr.getFree() * 2 < 2000) {
  8.             System.out.println("provide a loan");
  9.         } else
  10.             System.out.println("don't need a loan");
  11.     }
  12. }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaozhima-dun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值