JAVA面向对象练习题,课后编程题。题目为:公司员工分为5类,每类员工都有相应的封装类。

这篇具有很好参考价值的文章主要介绍了JAVA面向对象练习题,课后编程题。题目为:公司员工分为5类,每类员工都有相应的封装类。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

abstract class Employee{
    private int month;
    private String name;
    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){
        int salary = 0;
        if(month==this.month)
            salary=salary+100;
        return salary;
    }
    public Employee(){

    }
    public Employee(String name,int month){
        this.month=month;
        this.name=name;
    }
}
class SalariedEmployee extends Employee{
   private int monthSalary;
   public SalariedEmployee(){

   }
   public SalariedEmployee(String name,int month,int monthSalary){
       super(name,month);
       this.monthSalary=monthSalary;
   }
   public int getMonthSalary(){
       return monthSalary;
   }
   public void setMonthSalary(int monthSalary){
       this.monthSalary = monthSalary;
   }
   public double getSalary(int month){
      double salary = monthSalary+super.getSalary(month);
       return salary;
   }
}
class HourlyEmployee extends Employee{
    public double getHourlySalary() {
        return hourlySalary;
    }

    public void setHourlySalary(double hourlySalary) {
        this.hourlySalary = hourlySalary;
    }

    public int getHours() {
        return hours;
    }

    public void setHours(int hours) {
        this.hours = hours;
    }

    private double hourlySalary;
    private int hours;
    public HourlyEmployee(){

    }
    public HourlyEmployee(String name,int month,double hourlySalary,int hours){
        super(name,month);
        this.hourlySalary=hourlySalary;
        this.hours=hours;
    }
    public double getSalary(int month){
        if(hours<0){
            System.out.println("数据错误!!!!!");
            return 0;
        }
        else if(hours<=160)
            return hourlySalary*hours+super.getSalary(month);
        else return hourlySalary*160+hourlySalary*1.5*(hours-160)+super.getSalary(month);
    }
}
class SalesEmployee extends Employee{
    private double sales;
    private double rete;
    public double getSales() {
        return sales;
    }

    public void setSales(double sales) {
        this.sales = sales;
    }

    public double getRete() {
        return rete;
    }

    public void setRete(double rete) {
        this.rete = rete;
    }

    public SalesEmployee(){

    }
    public SalesEmployee(String name,int month,double sales,double rete){
        super(name,month);
        this.sales=sales;
        this.rete=rete;
    }

    @Override
    public double getSalary(int month) {
        return this.getSales()*(1+this.getRete())+super.getSalary(month);
    }
}
class BasePlusSalesEployee extends SalesEmployee{
    public double getBaseSalary() {
        return baseSalary;
    }

    public void setBaseSalary(double baseSalary) {
        this.baseSalary = baseSalary;
    }

    private double baseSalary;
    public BasePlusSalesEployee(){

    }
    public BasePlusSalesEployee(String name,int month,double sales,double rete,double baseSalary){
        super(name,month,sales,rete);
        this.baseSalary=baseSalary;
    }
    public double getSalary(int month){
        return baseSalary+super.getSalary(month);
    }
}
public class 一 {
    public static void main(String[] args) {
        Employee[] employees = {new SalariedEmployee("张三",1,1600),new HourlyEmployee("李 四",2,50,180),new SalesEmployee("王五",3,6500,0.15),
                new BasePlusSalesEployee("赵六",4,5000,0.15,2000)};
        for(int i=0;i<employees.length;i++){
            System.out.println(Math.round(employees[i].getSalary(5)));
        }
    }
}

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

到了这里,关于JAVA面向对象练习题,课后编程题。题目为:公司员工分为5类,每类员工都有相应的封装类。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 十、jQuery(上) - 章节课后练习题及答案

    第一章链接:初识JavaScript - 章节课后练习题及答案 第二章链接:JavaScript 基础(上) - 章节课后练习题及答案  第三章链接:JavaScript 基础(下) - 章节课后练习题及答案 第四章链接:JavaScript 函数 - 章节课后练习题及答案 第五章链接:JavaScript 对象 - 章节课后练习题及答案

    2024年02月12日
    浏览(33)
  • 【数据结构】第二章课后练习题——线性结构

    1、线性表是 一个有限序列,可以为空 2、链表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用 单循环链表 存储方式最节省运算时间 3、若某线性表中最常用的操作实在最后一个元素之后插入一个元素和删除第一个元素,则采用 仅有尾结点的

    2024年02月07日
    浏览(50)
  • 九、JavaScript网页特效 - 章节课后练习题及答案

    第一章链接:初识JavaScript - 章节课后练习题及答案 第二章链接:JavaScript 基础(上) - 章节课后练习题及答案  第三章链接:JavaScript 基础(下) - 章节课后练习题及答案 第四章链接:JavaScript 函数 - 章节课后练习题及答案 第五章链接:JavaScript 对象 - 章节课后练习题及答案

    2024年02月10日
    浏览(41)
  • 【Java练习题汇总】《第一行代码JAVA》网络编程篇&集合体系篇&JDBC篇,汇总Java练习题——Socket 与ServerSocket、List和Set、Map~

    一、填空题 在类集中存放单值的最大父接口是___________ ,存放一对值的最大父接口是___________ 。 ___________ 接口保存的数据是不允许重复的,并且___________ 子类是可以排序的,根据___________ 排序。 Java 类集可以使用的输出方式是___________ 、___________ 、___________ 和___________ 。 在

    2024年02月13日
    浏览(35)
  • C#声明Employee类实现其构造函数(C#课后练习题-构造函数篇)

    本篇文章的题目为C#的基础练习题,构造函数部分。做这些习题之前,你需要确保已经学习了构造函数的知识。 本篇文章可以用来在学完构造函数后加深印象,也可以用于大学课后习题。 假设你正在开发一个简单的员工管理系统,其中有一个 Employee 类表示员工。请编写一个

    2024年02月07日
    浏览(38)
  • 软件项目管理第4版课后习题-期末复习题型分册版-练习版无答案

    软件项目管理第4版课后习题[附解析]系列文章目录 第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 第十一章 第十二章 第十三章 第十四章 第十五章 第十六章 期末复习题型分册版-练习版无答案(无大题版) 期末复习题型分册版-有答案版(无大题

    2024年02月11日
    浏览(32)
  • 嵌入式培训机构四个月实训课程笔记(完整版)-C++和QT编程第二天-C++类与对象练习题(物联技术666)

    网盘链接:https://pan.baidu.com/s/1TKdHdeuDI8XPaakepvSLZQ?pwd=1688  提取码:1688 设计一个学生类,包括学号、姓名、成绩,并设计接口函数用来输出这些学生数据并计算平均分。并编写main函数进行测试: 输出如: 学号 姓名 成绩 1 张XX 98 2 王XX 90 3 XXX 89 平均成绩: XX //*******************

    2024年01月16日
    浏览(33)
  • 10 SQL进阶 -- 综合练习题 -- 10道经典SQL题目,配套数据与解答

    点击下方链接直接下载 创建数据表脚本:http://tianchi-media.oss-cn-beijing.aliyuncs.com/dragonball/SQL/create_table.sql 执行建表语句 执行成功 查看创建的表 点击下方链接直接下载 插入数据脚本:https://tianchi-media.oss-cn-beijing.aliyuncs.com/dragonball/SQL/data.zip 大家下载好脚本后,先在MySQL环境中运

    2024年04月27日
    浏览(31)
  • C#基础练习题,编程题汇总

    编程实现在一行内输入若干个整数(不超过30个),输出最大的一个整数。 样例如下: 输入(在一行内输入,空格分隔): 5 6 78 -89 0 23 100 4 6 输出: 100 C#具体设计: 1.先让用户输入一些整数, 2.再装其读入到字符串用, 3.用空格符来分割字符成,存成字符数组 4.用foreach语句

    2023年04月16日
    浏览(47)
  • 【C++】初始化列表、static成员、友元、匿名对象、附练习题

    我们前面学习了关于类和对象的6个默认成员函数,知道了一个空类中有构造函数和析构函数,通过对对象初始化和对象中进行资源清理,达到初始化和销毁的作用。我们再对一些小的点进行补充,看看类和对象的一些细节。 1.1 构造函数体赋值 在创建对象时,编译器通过 调

    2024年02月22日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包