JAVA第十五次作业

Cola公司的雇员分为以下若干类:(知识点:多态) [必做
题]
• 4.1 ColaEmployee :这是所有员工总的父类,属性:员工的
姓名,员工的生日月份。方法:getSalary(int month) 根据参数
月份来确定工资,如果该月员工过生日,则公司会额外奖励
100 元。
• 4.2 SalariedEmployee : ColaEmployee 的子类,拿固定工
资的员工。属性:月薪
课后作业
• 4.3 HourlyEmployee :ColaEmployee 的子类,按小时拿工
资的员工,每月工作超出160 小时的部分按照1.5 倍工资发
放。属性:每小时的工资、每月工作的小时数
• 4.4 SalesEmployee :ColaEmployee 的子类,销售人员,
工资由月销售额和提成率决定。属性:月销售额、提成率
• 4.5 定义一个类Company,在该类中写一个方法,调用该
方法可以打印出某月某个员工的工资数额,写一个测试类
TestCompany,在main方法,把若干各种类型的员工放在一
个ColaEmployee 数组里,并单元出数组中每个员工当月的
工资

package oop;

public class colaEmployee {
      String name;
      int month;
    
    public colaEmployee() {
        super();
    }
    
    public colaEmployee(String name, int month) {
        super();
        this.name = name;
        this.month = month;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public int getMonth() {
        return month;
    }
    
    public void setMonth(int month) {
        this.month = month;
    }
    
    public double getSalary(int month){
        return 0;
}
    


    
    
}
package oop;

public class salariedEmployee extends colaEmployee {
    double monthSalary;
    
    public salariedEmployee(String name, int month,double monthSalary) {
        super(name, month);
        this.monthSalary=monthSalary;
    }

    public double getSalary(int month){
        if(super.month==month){
        return monthSalary+100;
        }else{
            return monthSalary;
        }
    }
    
    
}
package oop;

public class hourlySalary extends colaEmployee{
    double hourlySalary;
    double hourNum;
    
    public hourlySalary(String name, int month,int hourSalary,int hourNum) {
         super(name,month);
         this.hourlySalary=hourSalary;
         this.hourNum=hourNum;
        }
    
    public double getSalary(int month) {
        if(super.month==month) {
         if (hourNum>160) {
          return hourlySalary*160+hourlySalary*(hourNum-160)*1.5+100;
         }else {
          return hourlySalary*hourNum+100;
         }
        }else {
         if (hourNum>160) {
          return hourlySalary*160+hourlySalary*(hourNum-160)*1.5;
         }else {
          return hourlySalary*hourNum;
         }
        }
          
        }
    
}
package oop;

public class salesEmployee extends colaEmployee {
    private int monthSales;
    private double royaltyRate;
    
    public salesEmployee(String name, int month,int monthSales,double royaltyRate) {
        super(name, month);
        this.monthSales = monthSales;
        this.royaltyRate = royaltyRate;
        }
        public double getSalary(int month) {
             if(super.month == month) {
                 return monthSales * royaltyRate + 100;
             }else {
                 return monthSales * royaltyRate;
             }
         }
    
    
    
    
    

    
}
package oop;

public class company extends colaEmployee{
    public void getSalary(colaEmployee c,int month) {
           System.out.println(c.name + "在" + month + "月的月薪为" + c.getSalary(month)+"元");
         }
}
package oop;

public class test {
     public static void main(String[] args) {
            // TODO 自动生成的方法存根
              colaEmployee[] cel = {
                            new salariedEmployee("salariedEmployee", 2, 10000),
                            new hourlySalary("hourlyEmployee", 4, 200, 400),
                            new salesEmployee("salesEmployee", 8, 50000, 0.3)
                            };
                    for (int i = 0; i < cel.length; i++) {
                        new company().getSalary(cel[i],6);
                    }
             }
}

• 5、利用接口实现动态的创建对象[选做题]
• 5.1 创建4个类:
• 苹果
• 香蕉
• 葡萄
• 园丁
• 5.2 在三种水果的构造方法中打印一句话.
• 以苹果类为例
• class apple
• {
• public apple()
• {
• System.out.println(―创建了一个苹果类的对象‖);
}
• }
课后作业
• 类图如下:
• 5.3 要求从控制台输入一个字符串,根据字符串的
值来判断创建三种水果中哪个类的对象

package oop1;

public interface fruit {

}
package oop1;

public class apple implements fruit {
    public  apple() 
    { 
        System.out.println("创建了一个苹果对象");
    }
}
package oop1;

public class banana implements fruit{
    public banana() 
    { 
        System.out.println("创建了一个香蕉对象");
    }
}
package oop1;

public class grape implements fruit{
    public  grape() 
    { 
        System.out.println("创建了一个葡萄对象");
    }
}
package oop1;
import java.util.Scanner;
public class gardener implements fruit{
    public fruit create() {
        Scanner input = new Scanner(System.in);
        String name = input.next();
        fruit fruit = null;
        if (name.equals("苹果")) {
            fruit=new apple();
      } 
        else if (name.equals("香蕉")) {
            fruit=new banana();
          
      } else {
          System.out.println("不会种");
      }
        return fruit;
}
}
package oop1;

public class test {
    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        gardener g = new gardener();
          g.create();
    }
}

posted @ 2021-06-17 00:24  我什么时候能有只猫  阅读(38)  评论(0编辑  收藏  举报