Java上机作业03
题目:
编写Emplyee类:为抽象类,保存在Company包中
(1)属性:姓名、工号、工作天数。
(2)构造方法: 有参构造方法:根据传递的参数,设置姓名、工号、工作天数的值。
(3)抽象方法salary:无参,返回值为double类型。
package Company;
public abstract class Emplyee {
public String name;
public String no;
public int days;
public Emplyee(String name,String no,int days) {
this.name=name;
this.no=no;
this.days=days;
}
public abstract double salary();
}
编写TemporaryEmplyee(临时工)类:继承Emplyee类,保存在Company包中
(1) 编写构造方法,实现姓名、工号、工作天数的初始化。
(2) 实现抽象方法salary( ),计算并返回工资,计算公式为:基本工资(2000)+工作天数*300
package Company;
public class TemporaryEmplyee extends Emplyee {
public TemporaryEmplyee(String name,String no,int days) {
super(name,no,days);
}
public double salary() {
return 2000+this.days*300;
}
}
RegularEmployee(正式员工)类:继承Emplyee类,保存在Company包中
(1) 增加属性:薪级(取值:1~5级)
(2) 编写构造方法,实现姓名、工号、工作天数、薪级的初始化。
(3) 实现抽象方法salary( ),计算并返回工资,计算公式为:基本工资(2000)+薪级400+工作天数300+补贴
package Company;
public class RegularEmployee extends Emplyee{
public int degree;
public RegularEmployee(String name,String no,int days,int degree) {
super(name,no,days);
this.degree=degree;
}
public double salary() {
return 2000+degree*400+days*300+1000;
}
}
编写Trainee类(实习生):继承Emplyee类,保存在Company包中(1) 编写构造方法,实现姓名、工号、工作天数的初始化。
(2) 实现抽象方法salary( ),工资计算公式为:工作天数*200+补贴(500)
package Company;
public class Trainee extends Emplyee{
public Trainee(String name,String no,int days) {
super(name,no,days);
}
public double salary() {
return days*200+500;
}
}
编写EmplyeeDemo类:保存在默认包中(即不保存在Company包里)引入Company包,编写main方法:
(1) 建立可保存10个Empleyee对象的数组
(2) 实例化若干个TemporaryEmplyee类、RegularEmployee类、Trainee类对象并存储在数组中。
(3) 分别调用这些对象的salary()方法,计算公司为每个员工应付的工资,并进行累加,把求得的公司总工资支出输出。
package homework;
import Company.*;
public class EmplyeeDemo {
public static void main(String[] args) {
Emplyee[] emarr=new Emplyee[10];
emarr[0]=new TemporaryEmplyee("Tom","110",30);
emarr[1]=new TemporaryEmplyee("Alis","111",29);
emarr[2]=new RegularEmployee("Lasin","112",25,5);
emarr[3]=new RegularEmployee("Lisa","113",28,4);
emarr[4]=new RegularEmployee("Ailon","114",26,4);
emarr[5]=new RegularEmployee("Jack","115",29,3);
emarr[6]=new RegularEmployee("Mon","116",29,2);
emarr[7]=new RegularEmployee("Hon","117",30,1);
emarr[8]=new TemporaryEmplyee("Bin","118",29);
emarr[9]=new TemporaryEmplyee("Win","111",29);
double sum=0;
for(int i=0;i<emarr.length;i++) {
System.out.println(emarr[i].name+"工号为"+emarr[i].no+"每月工作"+emarr[i].days+"月薪是"+emarr[i].salary());
sum=sum+emarr[i].salary();
}
System.out.println("该公司总工资支出输出为"+sum);
}
}