4.1-互评-OO之继承与static-阅读EmployeeTest.java代码

(1)raiseSalary方法有什么用?

   public void raiseSalary(double byPercent)
   {
      double raise = salary * byPercent / 100;
      salary += raise;
   }

raiseSalary方法用于增加员工的薪水。它接收一个参数byPercent,表示薪水增加的百分比。方法内部会计算出增加的薪水raise,并将其加到原有的薪水上。这样调用这个方法后,员工的薪水就会增加相应的百分比



(2)代码中3个Employee对象调用raiseSalary方法所执行的代码一样吗?返回结果一样吗?为什么?

for (Employee e : staff)
         e.raiseSalary(5);

(1.)三个Employee对象调用raiseSalary方法所执行的代码是一样的,因为他们所调用的raiseSalary方法中的byPercent参数都一样。

(2.)返回结果不一样。三个Employee的初始薪水不一样,所以即使增加的百分比一样,但最终的薪水增加量会有所不同


(3)能不能将raiseSalary定义为static?结合该例子,你觉得一般来说什么样的方法应该声明为static?

(1.)可以将raiseSalary方法定义为static。

(2.)一般来说,应该将方法声明为静态方法,或者当方法不需要访问实例变量或调用实例方法时,可以将方法声明为static。例如raiseSalary方法中,由于raiseSalary方法不依赖于任何特定的对象状态,它只是根据输入的百分比增加员工的薪水,因此,将raiseSalary方法声明为静态方法可以更好地反映其独立于对象的特性。

(4)进阶要求:使用Java8中的日期类,替换掉Employee类中的hireDay。参考代码见Java8DateTimeTest.java。

class Employee
{
   public Employee(String n, double s, int year, int month, int day)
   {
      name = n;
      salary = s;
      hireDay = LocalDateTime.of(year, month, day, 0, 0);
   }
   public LocalDateTime getHireDay()
   {
      return hireDay;
   }
   private String name;
   private double salary;
   private LocalDateTime hireDay;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值