Java第二次实验——类的层次结构(1)

    科技2022-07-13  132

    Java第二次实验第一题

    一. 实验目的二.实验要求三.代码展示1. 结构层次2. empoyee.java3.SalariedEmployee.java4.CommissionEmploye.java5.HourEmployee.java6.BaseplusEmployee .java7.test.java 四、 输出显示五、心得体会放一段大佬的答案

    一. 实验目的

    建立类的层次结构。

    二.实验要求

    创建如下图所示的类(使用类层次结构中的类)

       Employee ( 姓名,性别,保险号、工作年限) 构造函数——一组set方法,一组get方法; 从键盘输入属性的方法; 屏幕输出属性的方法;

       SalariedEmployee ( 每月绩效 、月薪、工作年限、年终奖金) 构造函数 ——一组set方法,一组get方法; 从键盘输入属性的方法; 计算年休假天数; 计算年终奖金(根据每月绩效,月薪和工作年限); 屏幕输出属性的方法

       CommissionEmployee ( 佣金率、销售总额、年终奖金、每月销售额) 构造函数—— 一组set方法,一组get方法; 从键盘输入属性的方法; 计算年休假天数(根据年销售总额); 计算年终奖金(根据每月的月销售额和销售总额); 屏幕输出属性的方法;

       HourlyEmployee ( 每小时的工资、工作小时数) 构造函数—— 一组set方法,一组get方法 屏幕输出属性的方法

       BaseplusEmployee ( 每周的基本工资数、佣金率、销售总额、年终奖金、每月销售额) 构造函数 —— 一组set方法,一组get方法; 从键盘输入属性的方法; 计算年休假天数(根据年销售总额); 计算年终奖金(根据每月的月销售额和销售总额); 屏幕输出属性的方法。

    三.代码展示

    1. 结构层次

    2. empoyee.java

    代码如下(示例):

    package employee; import java.util.*; /* * Employee : 姓名,性别,保险号、工作年限 构造函数 一组set方法,一组get方法 从键盘输入属性的方法 屏幕输出属性的方法 */ public class employee { String name;// 姓名 String sex;//性别 double InsuranceID;//保险号 int WorkingYear;//工作年限 public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public double getInsuranceID() { return InsuranceID; } public void setInsuranceID(double insuranceID) { InsuranceID = insuranceID; } public int getWorkingYear() { return WorkingYear; } public void setWorkingYear(int workingYear) { WorkingYear = workingYear; } /* * 从键盘输入属性的方法 */ public void input(){ Scanner in = new Scanner(System.in); System.out.println("请输入姓名:"); setName(in.nextLine()); System.out.println("请输入性别:"); setSex(in.nextLine()); System.out.println("请输入保险号:"); setInsuranceID(in.nextDouble()); System.out.println("请输入工作年限:"); setWorkingYear(in.nextInt()); in.close(); } public employee(String name, String sex, double insuranceID, int workingYear) { super(); this.name = name; this.sex = sex; InsuranceID = insuranceID; WorkingYear = workingYear; } public employee() { super(); this.name = "丈夫"; this.sex = "nan1"; InsuranceID = 195184; WorkingYear = 15; } /* * 屏幕输出属性的方法 */ public void output(){ System.out.println("姓名: "+getName()); System.out.println("性别: "+getSex()); System.out.println("保险号: "+getInsuranceID()); System.out.println("工作年限: "+getWorkingYear()); } }

    3.SalariedEmployee.java

    代码如下(示例):

    package employee; import java.util.Scanner; /* * SalariedEmployee 每月绩效 月薪,工作年限,年终奖金 构造函数 一组set方法,一组get方法 从键盘输入属性的方法 计算年休假天数 计算年终奖金(根据每月绩效,月薪和工作年限) 屏幕输出属性的方法 */ public class SalariedEmployee extends employee { int performance;//每月绩效 五分制绩效 //5分超常, 4分达标, 3分可接受 , 2分需改进 , 1-0分不良 double salary;//月薪 double annualBonus;//年终奖 public int getPerformance() { return performance; } public void setPerformance(int performance) { this.performance = performance; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } public double getAnnualBonus() { return annualBonus; } public void setAnnualBonus(double annualBonus) { this.annualBonus = annualBonus; } /* * 从键盘输入属性的方法 */ public void input1() { // super.input();//super调用父类 Scanner in = new Scanner(System.in); System.out.println("请输入姓名:"); setName(in.nextLine()); System.out.println("请输入性别:"); setSex(in.nextLine()); System.out.println("请输入保险号:"); setInsuranceID(in.nextDouble()); System.out.println("请输入工作年限:"); setWorkingYear(in.nextInt()); System.out.println("输入每月绩效(5分制):"); setPerformance(in.nextInt()); System.out.println("输入月薪:"); setSalary(in.nextDouble()); in.close(); } /* * 屏幕输出属性的方法 */ public void output1() { super.output(); System.out.println("每月绩效: "+getPerformance() ); System.out.println("月薪:"+getSalary()); Bonus(); System.out.println("年终奖: "+getAnnualBonus()); Holidays(); } /* * 计算年终奖金(根据每月绩效,月薪和工作年限) */ public void Bonus() { if(WorkingYear<5) setAnnualBonus( salary*WorkingYear*performance) ; else setAnnualBonus(salary*performance*5); } /* * 计算年休假天数 */ public void Holidays() { if(WorkingYear>=1 && WorkingYear<10) System.out.println("年假休5天"); else if(WorkingYear>=10 && WorkingYear<20) System.out.println("年假休10天"); else System.out.println("年假休20天"); } public SalariedEmployee() { super(); this.performance =5; this.salary = 3000; this.annualBonus = 0; } public SalariedEmployee(String name, String sex, double insuranceID, int workingYear, int performance, double salary, double annualBonus) { super(name, sex, insuranceID, workingYear); this.performance = performance; this.salary = salary; this.annualBonus = annualBonus; } public SalariedEmployee(int performance,double salary, double annualBonus) { super(); this.performance = performance; this.salary = salary; this.annualBonus = annualBonus; } }

    4.CommissionEmploye.java

    代码如下(示例):

    package employee; import java.util.Scanner; /* * CommissionEmployee 佣金率、销售总额,年终奖金,每月销售额 构造函数 一组set方法,一组get方法 从键盘输入属性的方法 计算年休假天数(根据年销售总额) 计算年终奖金(根据每月的月销售额和销售总额) 屏幕输出属性的方法 */ public class CommissionEmployee extends employee{ float CommissionRate;//佣金率 double salesAmount;//销售总额 double annualBonus;//年终奖 double monthSalesAmount;//销售月额 public float getCommissionRate() { return CommissionRate; } public void setCommissionRate(float commissionRate) { CommissionRate = commissionRate; } public double getSalesAmount() { return salesAmount; } public void setSalesAmount(double salesAmount) { this.salesAmount = salesAmount; } public double getAnnualBonus() { return annualBonus; } public void setAnnualBonus(double annualBonus) { this.annualBonus = annualBonus; } public double getMonthSalesAmount() { return monthSalesAmount; } public void setMonthSalesAmount(double monthSalesAmount) { this.monthSalesAmount = monthSalesAmount; } /* * 从键盘输入属性的方法 */ public void input(){ // super.input(); Scanner in = new Scanner(System.in); System.out.println("请输入姓名:"); setName(in.nextLine()); System.out.println("请输入性别:"); setSex(in.nextLine()); System.out.println("请输入保险号:"); setInsuranceID(in.nextDouble()); System.out.println("请输入工作年限:"); setWorkingYear(in.nextInt()); System.out.println("请输入佣金率"); setSalesAmount(in.nextFloat()); System.out.println("请输入销售月额"); setMonthSalesAmount(in.nextDouble()); System.out.println("请输入销售总额"); setSalesAmount(in.nextDouble()); in.close(); } /* * 计算年休假天数(根据年销售总额) */ public void Holidays() { if(salesAmount<20000) System.out.println("销售总额小于2万,年假休5天"); else if(salesAmount<50000) System.out.println("销售总额小于5万,年假休15天"); else System.out.println("年假休20天"); } /* * 计算年终奖金(根据每月的月销售额和销售总额) */ public void Bonus() { this.annualBonus=(monthSalesAmount*12*1.5+salesAmount*1.5)/2; } /* * 屏幕输出属性的方法 */ public void output(){ super.output(); System.out.println("佣金率:"+CommissionRate); System.out.println("销售总额:"+salesAmount); Holidays(); System.out.println("每月销售额:"+monthSalesAmount); Bonus(); System.out.println("年终奖:"+annualBonus); } public CommissionEmployee(String name, String sex, double insuranceID, int workingYear, float commissionRate, double salesAmount, double annualBonus, double monthSalesAmount) { super(name, sex, insuranceID, workingYear); CommissionRate = commissionRate; this.salesAmount = salesAmount; this.annualBonus = annualBonus; this.monthSalesAmount = monthSalesAmount; } public CommissionEmployee() { super("刘二", "男", 19454, 26); CommissionRate =(float) 0.05; this.salesAmount = 50000; // this.annualBonus = annualBonus; this.monthSalesAmount = 5000; } }

    5.HourEmployee.java

    代码如下(示例):

    package employee; import java.util.Scanner; /* * HourlyEmployee 每小时的工资和工作小时数 构造函数 一组set方法,一组get方法 屏幕输出属性的方法 */ public class HourEmployee extends employee { int hourworktime;// 工作小时数 double hourwages;//每小时的工资 public int getHourworktime() { return hourworktime; } public void setHourworktime(int hourworktime) { this.hourworktime = hourworktime; } public double getHourwages() { return hourwages; } public void setHourwages(double hourwages) { this.hourwages = hourwages; } public void inout(){ Scanner in = new Scanner(System.in); System.out.println("请输入 工作小时数:"); setHourworktime(in.nextInt()); System.out.println("请输入每小时的工资:"); setHourwages(in.nextDouble()); in.close(); } public void output(){ System.out.println("工作小时数: "+getHourworktime()); System.out.println("每小时的工资: "+getHourwages()); } public HourEmployee() { //super(name, sex, insuranceID, workingYear); this.hourworktime = 8; this.hourwages = 60; } public HourEmployee(int hourworktime, double hourwages) { super(); this.hourworktime = hourworktime; this.hourwages = hourwages; } }

    6.BaseplusEmployee .java

    代码如下(示例):

    package employee; import java.util.Scanner; /* * BaseplusEmployee 每周的基本工资数,佣金率、销售总额,年终奖金,每月销售额 构造函数 一组set方法,一组get方法 从键盘输入属性的方法 计算年休假天数(根据年销售总额) 计算年终奖金(根据每月的月销售额和销售总额) 屏幕输出属性的方法 */ public class BaseplusEmployee extends CommissionEmployee { public BaseplusEmployee(String name, String sex, double insuranceID, int workingYear, float commissionRate, double salesAmount, double annualBonus, double monthSalesAmount, int weeklyBaseSalary) { super(name, sex, insuranceID, workingYear, commissionRate, salesAmount, annualBonus, monthSalesAmount); this.weeklyBaseSalary = weeklyBaseSalary; } int weeklyBaseSalary; public int getWeeklyBaseSalary() { return weeklyBaseSalary; } public void setWeeklyBaseSalary(int weeklyBaseSalary) { this.weeklyBaseSalary = weeklyBaseSalary; } public void input(){ Scanner in = new Scanner(System.in); System.out.println("请输入姓名:"); setName(in.nextLine()); System.out.println("请输入性别:"); setSex(in.nextLine()); System.out.println("请输入保险号:"); setInsuranceID(in.nextDouble()); System.out.println("请输入工作年限:"); setWorkingYear(in.nextInt()); System.out.println("请输入佣金率"); setSalesAmount(in.nextFloat()); System.out.println("请输入销售月额"); setMonthSalesAmount(in.nextDouble()); System.out.println("请输入销售总额"); setSalesAmount(in.nextDouble()); System.out.println("请输入每周基本工资"); setWeeklyBaseSalary(in.nextInt()); in.close(); } public BaseplusEmployee(int weeklyBaseSalary) { super(); this.weeklyBaseSalary = weeklyBaseSalary; } public void output(){ super.output(); System.out.println("每周基本工资"+weeklyBaseSalary); } }

    7.test.java

    代码如下(示例):

    package employee; //用于测试 public class test { public static void main(String[] args){ BaseplusEmployee zhang= new BaseplusEmployee(100); zhang.input(); zhang.output(); } }

    四、 输出显示

    五、心得体会

       关于构造函数,eclipse可以自动生成。之所以要用get和set方法,是对象里属性是private只能通过这个方法来修改。建立构造函数,我们需要写两个——一个有参,一个无参。Java只允许单继承。子类如果没有调用父类的构造函数,就会自动调用父类无参构造函数。

      this使用此对象,super调用父类(函数,构造函数,属性都可以)

      对于子类调用父类输入函数,会报错。我还没有处理好。   每月销售额应该是数组,我省事就没弄了

    放一段大佬的答案

    package employee; import java.util.Scanner; /** * 雇员类 */ public class Employee { /** * 姓名 */ private String name; /** * 性别 */ private String sex; /** * 保险号 */ private String insuranceNum; /** * 工作年限 */ private int workingYear; /** * 无参构造函数 */ Employee() { name = ""; sex = "M"; insuranceNum = ""; workingYear = 0; } /** * 带参构造函数 */ Employee(String name, String sex, String insuranceNum, int workingYear) { this.name = name; this.sex = sex; this.insuranceNum = insuranceNum; this.workingYear = workingYear; } /** * 赋值函数 */ public void set(String name, String sex, String insuranceNum, int workingYear) { this.name = name; this.sex = sex; this.insuranceNum = insuranceNum; this.workingYear = workingYear; } /** * name单项赋值函数 */ public void setName(String name) { this.name = name; } /** * sex单项赋值函数 */ public void setSex(String sex) { this.sex = sex; } /** * insuranceNum单项赋值函数 */ public void setInsuranceNum(String insuranceNum) { this.insuranceNum = insuranceNum; } /** * workingYear单项赋值函数 */ public void setWorkingYear(int workingYear) { this.workingYear = workingYear; } /** * name单项返回函数 */ public String getName() { return name; } /** * sex单项返回函数 */ public String getSex() { return sex; } /** * insuranceNum单项返回函数 */ public String getInsuranceNum() { return insuranceNum; } /** * workingYear单项返回函数 */ public int getWorkingYear() { return workingYear; } /** * 输入封装函数 */ public void input() { //封装java扫描类 Scanner sc = new Scanner(System.in); System.out.println("请依次输入雇员信息:"); //依次输入每一条信息 System.out.print("姓名(字符串):"); String name = sc.nextLine(); System.out.print("性别(字符串):"); String sex = sc.nextLine(); System.out.print("保险号(字符串):"); String insuranceNum = sc.nextLine(); System.out.print("工作年限(整数):"); int workingYear = sc.nextInt(); set(name, sex, insuranceNum, workingYear); } /** * 输出封装函数 */ public void output() { System.out.println("雇员信息如下:"); System.out.println("姓名:" + name); System.out.println("性别:" + sex); System.out.println("保险号:" + insuranceNum); System.out.println("工作年限:" + workingYear); } } package employee; import java.util.Scanner; /** * 定薪雇员 */ public class SalariedEmployee extends Employee { /** * 月绩效 */ private float monthMerit; /** * 月薪 */ private int monthSalary; /** * 无参构造函数 */ SalariedEmployee() { super(); monthMerit = 0; monthSalary = 0; } /** * 带参构造函数 */ SalariedEmployee(String name, String sex, String insuranceNum, int workingYear, float monthMerit, int monthSalary) { super(name, sex, insuranceNum, workingYear); this.monthMerit = monthMerit; this.monthSalary = monthSalary; } /** * 赋值函数 */ public void set(String name, String sex, String insuranceNum, int workingYear, float monthMerit, int monthSalary) { super.set(name, sex, insuranceNum, workingYear); this.monthMerit = monthMerit; this.monthSalary = monthSalary; } /** * monthMerit单项赋值函数 */ public void setMonthMerit(float monthMerit) { this.monthMerit = monthMerit; } /** * monthSalary单项赋值函数 */ public void setMonthSalary(int monthSalary) { this.monthSalary = monthSalary; } /** * monthMerit单项返回函数 */ public float getMonthMerit() { return monthMerit; } /** * monthSalary单项返回函数 */ public int getMonthSalary() { return monthSalary; } /** * 输入封装函数 */ @Override public void input() { super.input(); //封装java扫描类 Scanner sc = new Scanner(System.in); System.out.print("月绩效(浮点数):"); float monthMerit = sc.nextFloat(); System.out.print("月薪(整数):"); int monthSalary = sc.nextInt(); setMonthMerit(monthMerit); setMonthSalary(monthSalary); } /** * 输出封装函数 */ @Override public void output() { super.output(); System.out.println("月绩效:" + monthMerit); System.out.println("月薪:" + monthSalary); System.out.println("年终奖:" + calculateYearBonus()); System.out.println("年假天数:" + calculateVacation()); } /** * 计算年假 * * 计算公式:工作年限1-9年 -> 5天 10-19年 -> 10天 20年及以上 -> 15天 */ public int calculateVacation() { int workingYear = this.getWorkingYear(); if (workingYear == 0) { return 0; } else if (workingYear > 0 && workingYear < 10) { return 5; } else if (workingYear >= 10 && workingYear < 20) { return 10; } else { return 15; } } /** * 计算年终奖 * * 计算公式:工作年限*2000 + 每月绩效*2000 + 月薪 */ public int calculateYearBonus() { int workingYear = getWorkingYear(); float monthMerit = getMonthMerit(); int monthSalary = getMonthSalary(); return (int)(workingYear * 2000 + monthMerit * 2000 + monthSalary); } } package employee; import java.util.Scanner; /** * 佣金雇员 */ public class CommissionEmployee extends Employee { /** * 佣金率 */ private float commissionRate; /** * 销售总额 */ private int totalSale; /** * 月销售额 */ private int monthSale; /** * 无参构造函数 */ CommissionEmployee() { super(); commissionRate = 0; totalSale = 0; monthSale = 0; } /** * 带参构造函数 */ CommissionEmployee(String name, String sex, String insuranceNum, int workingYear, float commissionRate, int totalSale, int monthSale) { super(name, sex, insuranceNum, workingYear); this.commissionRate = commissionRate; this.totalSale = totalSale; this.monthSale = monthSale; } /** * 赋值函数 */ public void set(String name, String sex, String insuranceNum, int workingYear, float commissionRate, int totalSale, int monthSale) { super.set(name, sex, insuranceNum, workingYear); this.commissionRate = commissionRate; this.totalSale = totalSale; this.monthSale = monthSale; } /** * commissionRate单项赋值函数 */ public void setCommissionRate(float commissionRate) { this.commissionRate = commissionRate; } /** * totalSale单项赋值函数 */ public void setTotalSale(int totalSale) { this.totalSale = totalSale; } /** * monthSale单项赋值函数 */ public void setMonthSale(int monthSale) { this.monthSale = monthSale; } /** * commissionRate单项返回函数 */ public float getCommissionRate() { return commissionRate; } /** * totalSale单项返回函数 */ public int getTotalSale() { return totalSale; } /** * monthSale单项返回函数 */ public int getMonthSale() { return monthSale; } /** * 输入封装函数 */ @Override public void input() { super.input(); //封装java扫描类 Scanner sc = new Scanner(System.in); System.out.print("佣金率(浮点数):"); float commissionRate = sc.nextFloat(); System.out.print("销售总额(整数):"); int totalSale = sc.nextInt(); System.out.print("月销售额(整数):"); int monthSale = sc.nextInt(); setCommissionRate(commissionRate); setTotalSale(totalSale); setMonthSale(monthSale); } /** * 输出封装函数 */ @Override public void output() { super.output(); System.out.println("佣金率:" + commissionRate); System.out.println("销售总额:" + totalSale); System.out.println("月销售额:" + monthSale); } /** * 计算年假 * * 计算公式:销售总额100000以下 -> 5天 100000-500000 ->10天 500000以上 20天 */ public int calculateVacation() { int totalSale = this.getTotalSale(); if (totalSale < 100000) { return 5; } else if (totalSale >= 100000 && totalSale < 500000) { return 10; } else { return 20; } } /** * 计算年终奖 * * 计算公式:销售总额*0.1 + 月销售额*0.1 */ public int calculateYearBonus() { int totalSale = getTotalSale(); int monthSale = getMonthSale(); return (int)(totalSale * 0.1 + monthSale * 0.1); } } package employee; /** * 时薪雇员 */ public class HourEmployee extends Employee { /** * 时薪 */ private int hourSalary; /** * 工作时长 */ private int workingHour; /** * 无参构造函数 */ HourEmployee() { super(); hourSalary = 0; workingHour = 0; } /** * 带参构造函数 */ HourEmployee(String name, String sex, int hourSalary, int workingHour) { super(name, sex, "", 0); this.hourSalary = hourSalary; this.workingHour = workingHour; } /** * 赋值函数 */ public void set(String name, String sex, int hourSalary, int workingHour) { super.set(name, sex, "", 0); this.hourSalary = hourSalary; this.workingHour = workingHour; } /** * hourSalary单项赋值函数 */ public void setHourSalary(int hourSalary) { this.hourSalary = hourSalary; } /** * workingHour单项赋值函数 */ public void setWorkingHour(int workingHour) { this.workingHour = workingHour; } /** * hourSalary单项返回函数 */ public int getHourSalary() { return hourSalary; } /** * workingHour单项返回函数 */ public int getWorkingHour() { return workingHour; } /** * 输出封装函数 */ @Override public void output() { super.output(); System.out.println("时薪:" + hourSalary); System.out.println("工作时长:" + workingHour); } } ```java package employee; import java.util.Scanner; /** * 带底薪的佣金雇员 */ public class BaseplusEmployee extends CommissionEmployee { /** * 周基本工资 */ private int weekBaseSalary; /** * 无参构造函数 */ BaseplusEmployee() { super(); weekBaseSalary = 0; } /** * 带参构造函数 */ BaseplusEmployee(String name, String sex, String insuranceNum, int workingYear, float commissionRate, int totalSale, int monthSale, int weekBaseSalary) { super(name, sex, insuranceNum, workingYear, commissionRate, totalSale, monthSale); this.weekBaseSalary = weekBaseSalary; } /** * 赋值函数 */ public void set(String name, String sex, String insuranceNum, int workingYear, float commissionRate, int totalSale, int monthSale, int weekBaseSalary) { super.set(name, sex, insuranceNum, workingYear, commissionRate, totalSale, monthSale); this.weekBaseSalary = weekBaseSalary; } /** * weekBaseSalary单项赋值函数 */ public int getWeekBaseSalary() { return weekBaseSalary; } /** * weekBaseSalary单项返回函数 */ public void setWeekBaseSalary(int weekBaseSalary) { this.weekBaseSalary = weekBaseSalary; } /** * 输入封装函数 */ @Override public void input() { super.input(); //封装java扫描类 Scanner sc = new Scanner(System.in); System.out.print("周基本工资(整数):"); int weekBaseSalary = sc.nextInt(); setWeekBaseSalary(weekBaseSalary); } /** * 输出封装函数 */ @Override public void output() { super.output(); System.out.println("周基本工资:" + weekBaseSalary); } /** * 计算年假 * * 计算公式:销售总额200000以下 -> 5天 200000-500000 ->10天 500000以上 20天 */ @Override public int calculateVacation() { int totalSale = this.getTotalSale(); if (totalSale < 200000) { return 5; } else if (totalSale >= 200000 && totalSale < 500000) { return 10; } else { return 20; } } /** * 计算年终奖 * * 计算公式:销售总额*0.1 + 月销售额*0.2 */ @Override public int calculateYearBonus() { int totalSale = getTotalSale(); int monthSale = getMonthSale(); return (int)(totalSale * 0.1 + monthSale * 0.2); } } package employee; /** * 主函数 */ public class Main { public static void main(String[] args) { System.out.println("Employee类测试"); Employee employee = new Employee(); employee.input(); employee.output(); System.out.println(); System.out.println("SalariedEmployee类测试"); SalariedEmployee salariedEmployee = new SalariedEmployee(); salariedEmployee.input(); salariedEmployee.output(); System.out.println(); System.out.println("HourEmployee类测试"); HourEmployee hourEmployee = new HourEmployee(); hourEmployee.input(); hourEmployee.setHourSalary(23); hourEmployee.setWorkingHour(6); hourEmployee.output(); System.out.println(); System.out.println("CommissionEmployee类测试"); CommissionEmployee commissionEmployee = new CommissionEmployee(); commissionEmployee.input(); commissionEmployee.output(); System.out.println("年假天数:" + commissionEmployee.calculateVacation()); System.out.println("年终奖:" + commissionEmployee.calculateYearBonus()); System.out.println(); System.out.println("BaseplusEmployee类测试"); BaseplusEmployee baseplusEmployee = new BaseplusEmployee(); baseplusEmployee.input(); baseplusEmployee.output(); System.out.println("年假天数:" + baseplusEmployee.calculateVacation()); System.out.println("年终奖:" + baseplusEmployee.calculateYearBonus()); System.out.println(); } }
    Processed: 0.011, SQL: 8