阅读以下说明和Java代码,填补Java代码中的空缺(1)~(6),将解答写在答题纸的对应栏内。 【说明】 已知某公司按周给员工发放工资,其工资系统需记录每名员工的员工号、姓名、工资等信息。其中一些员工是正式的,按年薪分周发放(每年按52周

admin2013-07-03  31

问题 阅读以下说明和Java代码,填补Java代码中的空缺(1)~(6),将解答写在答题纸的对应栏内。
    【说明】
    已知某公司按周给员工发放工资,其工资系统需记录每名员工的员工号、姓名、工资等信息。其中一些员工是正式的,按年薪分周发放(每年按52周计算);另一些员工是计时工,以小时工资为基准,按每周工作小时数核算发放。
    下面是实现该工资系统的Java代码,其中定义了四个类:工资系统类PayRoll、员工类Employee、正式工类Salaried和计时工类Hourly,Salaried和Hourly是Employee的子类。
    [Java代码】
abstract class Employee{
    protected String name;                      //员工姓名
    protected int empCode;                      //员工号
    protected double salary;                    //周发放工资
    public Employee(int empCode,String name){
        this.empCode=empCode;
        this.name=name;
    }
public double getSalary(){
        return this.salary;
    }
    publ ic abstract void pay();
}
    class Salaried  (1)  Employee {
  private double annualSalary;
  Salaried(int empCode,String name,double payRate){
        super(empCode,name);
        this.annualSalary=payRate;
    }
    public void pay(){
        salary=  (2)  ;    //计算正式员工的周发放工资数
        System.out.println(this.name+”:”+this.salary);
    }
}
    class Hourly  (3)  Employee{
    private double hourlyPayRate;
    private int hours;
    Hourly(int empCode,String name,int hours,double payRate){
        super(empCode,name);
        this.hourlyPayRate=payRate;
        this.hows=hours.
    }
    public void pay(){
         salary=  (4)  ;//计算计时工的周发放工资数
         System.out.println(this.na/lle+”:”+this.salary);
    }
}
      public class PayRoll{
    private  (5)  employees[]={
        new Salaried(1001,”Zhang San”,58000.00),
        //此处省略对其他职工对象的生成
        new Hourly(1005,”Li”,12,50.00)
    };
    public void pay(Employee e[[){
        for(int i=0;i<e.length;i++){
            e.pay():
        }
    }
    public static void main(String[] args)
    {
        PayRoll payroll=new PayRoll():
        payRoll.pay(  (6)  ):
        double total=0.0;
       for(int i=0;i<payRoll.employees.length;i++){    //统计周发放工资总额
           total+=payroll.employees.getSalary();
       }
       System.out.println(total);
    }
}

选项

答案(1)extends (2)annualSalary/52 (3)extends (4)hours * hocurlyPayRate (5)Ernployee (6)payRoll.Employees

解析 本题考查考生利用Java语言设汁程序的能力,涉及类、方法和抽象方法的定义和相关操作以及继承关系。考生需要根据给出的案例和执行过程说明,认真阅读理清程序思路,然后完成程序的设计。
    根据题目中有关信息的描述,Salaried和Hourly是Employee的子类,它们之间是继承关系。(1)和(3)处需要体现出类之间的继承关系。在子类的构造方法中,调用父类的构造方法。在Java语言中,子类继承父类的语法格式为:class子类名extends父类名。因此,(1)处和(3)处均应填入extends。
    根据题目的描述及程序段的注释,(2)处实现计算正式员工的周发放工资数。正式员工的周发放工资数为年薪除以总周数,因此应填入annualSalary/52。(4)处实现汁算计时工的周发放工资数。计时工的周发放工资数为周工作小时数乘以小时工资数。因此,(4)处应填入hours*hourlyPayRate。
    (5)处用于生成5个员工的信息,此处缺少一个类型修饰符。南对象的生成信息可知,此处应填入父类的类名,即Employee。
    (6)处调用工资系统类PayRolI中的pay函数。由类PayRoll中构造方法public void pay(Employee e[])的形式可以确定,(6)处应填入pay.Rolll employees。
转载请注明原文地址:https://kaotiyun.com/show/8njZ777K
0

最新回复(0)