Bʟᴇssɪɴɢ .40 2024-09-29 22:51 采纳率: 81%
浏览 0

employ salariedemployee

公司的员工分为5类,每类员工都有相应的封装类,这5个类的信息如下。
(1)Employee:这是所有员工的父类。
①属性:员工的姓名、员工的生日月份。
②方法:getSalary(int month)根据参数月份确定工资。如果该月员工过生日,则公司会额外发放100元。
(2) SalariedEmployee: Employee的子类,拿固定工资的员工。
属性:月薪。
(3)HourlyEmployee: Employee 的子类,按小时拿工资的员工,每月工作超出160h的部分按照1.5倍工资发放。
属性:每小时的工资、每月工作的小时数。
(4) SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定。
属性:月销售额、提成率。
(5) BasePlusSalesEmployee: SalesEmplo 底薪加上销售提成。
属性:底薪。
本题要求根据上述员工分类,编写一个程序,实现以下功能:
(1)创建一个Employee数组,分别创建若干不同的Employee对象,并打印某个月的工资。
(2)每个类都完全封装,不允许有非私有化属性。

  • 写回答

2条回答 默认 最新

  • 一轮明月照丘壑 2024-09-29 22:52
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    这是一个Java编程问题,涉及到类的继承和多态。首先,我们需要定义五个类:Employee、SalariedEmployee、HourlyEmployee、SalesEmployee和BasePlusSalesEmployee。下面是每个类的基本实现和对应的程序来完成所需的功能。

    首先是Employee类及其子类的基础定义:

    public class Employee {
        private String name; // 员工姓名
        private int birthMonth; // 生日月份
    
        public Employee(String name, int birthMonth) {
            this.name = name;
            this.birthMonth = birthMonth;
        }
    
        public double getSalary(int month) {
            double salary = 0; // 默认工资为0(根据实际需求可能需要进一步实现具体工资计算逻辑)
            if (month == birthMonth) { // 如果生日月,则增加额外的薪水
                salary += 100; // 假设生日额外薪水为固定值,根据实际情况可能不同
            }
            return salary; // 返回薪水值
        }
    }
    
    class SalariedEmployee extends Employee { // 固定工资员工类继承自Employee类
        private double monthlySalary; // 月薪属性封装在私有变量中
    
        public SalariedEmployee(String name, int birthMonth, double monthlySalary) {
            super(name, birthMonth); // 调用父类构造函数初始化基础属性
            this.monthlySalary = monthlySalary; // 初始化月薪属性(私有)
        }
    
        public double getSalary() { // 重写父类的getSalary方法,实现固定工资的获取逻辑(可能需要根据具体情况添加参数或条件判断)
            return monthlySalary; // 返回月薪作为工资值(可能需要根据具体情况修改计算方法)
        }
    }
    // 其他类(HourlyEmployee、SalesEmployee和BasePlusSalesEmployee)类似地继承自Employee类,并添加各自的属性和方法。具体的属性和方法需要根据业务逻辑进一步实现。下面是如何创建对象并打印工资的示例代码:
    ```java
    public class Main {
        public static void main(String[] args) {
            Employee[] employees = new Employee[5]; // 创建Employee数组,包含五个不同类型的员工对象(假设有五个员工)
            employees[0] = new SalariedEmployee("张三", 9, 5000); // 创建固定工资员工对象并添加到数组中(这里假设张三生日在9月)
            employees[1] = new HourlyEmployee("李四", 5, 20, 160); // 创建按小时计薪的员工对象(这里假设李四生日在5月)等其他对象填充数组。其他类的创建方式类似。
            // 其他员工对象的创建与添加过程省略... 填充其他数组元素。由于具体实现细节缺失,无法准确给出完整的创建过程。这里仅提供一个大概的框架和思路。接着我们可以使用如下代码打印某个月的工资(假设我们想要打印第三个员工的九月份工资): int month = 9; 打印员工的工资System.out.println("第三个员工的九月份工资是:" + employees[2].getSalary(month)); 这样就可以打印出特定员工的特定月份的工资了。具体的打印逻辑可能需要根据具体需求进行修改和完善。以上就是基于提供的描述进行的一个基本的实现框架。由于具体的业务逻辑和数据结构不完整,所以具体的实现细节需要根据实际情况进一步设计和实现。
    
    评论

报告相同问题?

问题事件

  • 创建了问题 9月29日

悬赏问题

  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?
  • ¥15 nasm x86 变量归零
  • ¥65 Tree 树形控件实现单选功能,可以使用element也可以手写一个,实现全选为全选状态
  • ¥60 寻抓云闪付tn组成网页付款链接
  • ¥16 寻字节跳动内部人员帮推简历